【问题标题】:How to identify the Actionfilter used in a Controller Action Method?如何识别控制器动作方法中使用的动作过滤器?
【发布时间】:2010-06-08 10:25:23
【问题描述】:

OnActionExecuting 在动作即将执行时触发。

如果我的操作有 actionfilter

[myCustomActionFilter] public ActionResult MyAction() { //implementation }

是否可以确定(在OnActionExecuting 事件中)一个动作应用了myCustomActionFilter?

【问题讨论】:

    标签: asp.net-mvc action-filter


    【解决方案1】:

    上述方法区分大小写。

    public void OnActionExecuting(ActionExecutingContext filterContext)
    {
        var actionDescriptor = filterContext.ActionDescriptor;
        if (actionDescriptor.IsDefined(typeof(myCustonActionFilter), true))
        {
            var attributeInstance = (myCustomActionFilter) actionDescriptor.GetCustomAttributes(typeof(myCustomActionFilter), true);
    
        }   
    }
    

    【讨论】:

      【解决方案2】:
           public void OnActionExecuting(ActionExecutingContext filterContext)
                  {
                      var controllerType = filterContext.Controller.GetType();
                      var actionMethod = controllerType.GetMethod(filterContext.ActionDescriptor.ActionName);
                      if (actionMethod.IsDefined(typeof(myCustomActionFilter),true))
                      {
                          var attributeInstance =
                              (myCustomActionFilter) actionMethod.GetCustomAttributes(typeof (myCustomAct   
      ionFilter), true);
              }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-09-29
        • 2016-11-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多