是否可以跳过整个动作方法执行并在OnActionExecuting中满足特定条件时返回特定的ActionResult?
解决方法
请参阅我的下载示例和MSDN文章
Filtering in ASP.NET MVC。
您可以通过将Result属性设置为非空值来取消OnActionExecuting和OnResultExecuting方法中的过滤器执行。
将不会调用任何挂起的OnActionExecuted和OnActionExecuting过滤器,并且调用者不会为取消的过滤器或挂起的过滤器调用OnActionExecuted方法。
将运行先前运行的过滤器的OnActionExecuted过滤器。所有的OnResultExecuting和OnResultExecuted过滤器将运行。
示例中的以下代码显示了当在OnActionExecuting中满足特定条件时如何返回特定的ActionResult:
if (filterContext.RouteData.Values.ContainsValue("Cancel")) { filterContext.Result = new RedirectResult("~/Home/Index"); Trace.WriteLine(" Redirecting from Simple filter to /Home/Index"); }