从ActionFilterAttribute内的URL获取Action名称

时间:2016-03-01 06:37:08

标签: asp.net asp.net-mvc custom-action-filter

我正在ActionFilterAttribute编写从ASP.Net MVC类继承的自定义过滤器属性。我想从url获取操作名称,我试过

ControllerContext controllerContext = new ControllerContext();
controllerContext.RouteData.Values["action"].ToString();

但是controllerContext.RouteData.Values中没有项目,因此给出了空引用错误。有其他方法可以得到相同的吗?

2 个答案:

答案 0 :(得分:2)

尝试以下

    public override void OnActionExecuted(ActionExecutedContext filterContext)
    {

        string action = filterContext.ActionDescriptor.ActionName;
        string controller = filterContext.Controller.GetType().Name;

    }

答案 1 :(得分:0)

var rd = System.Web.HttpContext.Current.Request.RequestContext.RouteData;
string actionName = rd.GetRequiredString("action");

为我工作。