1

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

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

但是 中没有项目controllerContext.RouteData.Values,因此给了我空引用错误。有没有其他方法可以达到同样的效果?

4

2 回答 2

4

尝试以下

    public override void OnActionExecuted(ActionExecutedContext filterContext)
    {

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

    }
于 2016-03-01T06:43:35.477 回答
1
var rd = System.Web.HttpContext.Current.Request.RequestContext.RouteData;
string actionName = rd.GetRequiredString("action");

为我工作。

于 2016-03-01T06:48:52.113 回答