我创建了一个实现了OnActionExecuted方法的ActionFilterAttribute。这意味着,它在Action方法之后运行。但是,在某些情况下,我希望OnActionExecuted不被执行。
如何从操作方法中阻止ActionFilter被执行?
现在,我做了这样的事情:
在Action方法上:
RouteData.Values.Add("CancelActionFilter", true);在ActionFilter.OnActionExecuted()上:
if (filterContext.RouteData.Values["CancelActionFilter"] != null)
{
return;
}但我认为这可能存在一种更优雅的方法。
发布于 2013-02-23 23:36:14
在ControllerActionInvoker类的InvokeActionMethodFilter方法内部调用OnActionExecuted。
在这个方法中,没有任何东西可以阻止被执行的操作。我认为你的是一个好的解决方案。
Code of ControllerActionInvoker class
https://stackoverflow.com/questions/15041739
复制相似问题