我正在ActionFilterAttribute
编写从ASP.Net MVC
类继承的自定义过滤器属性。我想从url获取操作名称,我试过
ControllerContext controllerContext = new ControllerContext();
controllerContext.RouteData.Values["action"].ToString();
但是controllerContext.RouteData.Values
中没有项目,因此给出了空引用错误。有其他方法可以得到相同的吗?
答案 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");
为我工作。