我制作了一个ActionFilterAttribute,它实现了OnActionExecuted方法。这意味着,它在Action方法之后运行。 但是,在某些情况下,我希望OnActionExecuted不被执行。
如何从Action方法中阻止执行ActionFilter?
目前,我已经做到了:
关于Action方法:
RouteData.Values.Add("CancelActionFilter", true);
在ActionFilter.OnActionExecuted():
上if (filterContext.RouteData.Values["CancelActionFilter"] != null)
{
return;
}
但我认为这可能存在一种更优雅的方法。
答案 0 :(得分:3)
在ControllerActionInvoker类的InvokeActionMethodFilter方法中调用OnActionExecuted。
在这种方法中,没有什么可以阻止执行的动作。我认为你的解决方案很好。