有谁知道为什么IResultFilter.OnResultExecuting
方法中的以下内容不起作用?
filterContext.Result = new RedirectResult("http://www.google.com");
我不是在寻找有关如何在IResultFilter.OnResultExecuting
方法中重定向的答案,因为已经问过here并且我实际上已经提供了答案。
相反,我在理由或逻辑之后知道为什么这不起作用。它看起来应该可以工作,但在Mvc 3中却没有。看起来除非你设置filterContext.Cancel = true
,否则原始的ActionResult正在执行。这可能是Mvc 3特有的错误,也可能是故意的。但是如果是有意的那么为什么呢?
答案 0 :(得分:1)
那是因为你已经迟到了,控制器已经被调用了。
基本ActionFilterAttribute类具有以下可以覆盖的方法:
如果要重定向用户,则应使用:在控制器操作之前调用的OnActionExecuting。