Response.Redirect在自定义ActionFilter中无法正常工作

1 asp.net-mvc redirect action-filter

我的代码如下

public class SessionCheckAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        if (/*condition*/)
        {
            filterContext.HttpContext.Response.Redirect("http://www.someurl.com",true);

        }
         base.OnActionExecuting(filterContext);
    }

}
Run Code Online (Sandbox Code Playgroud)

现在,问题是为什么[SessionCheck]的操作应用于它STILL执行.有任何想法吗?谢谢.

tva*_*son 9

不要使用Response.Redirect,而是使用RedirectResult替换上下文中的Result.这将终止过滤器链中的处理并导致立即发送重定向响应.

filterContext.Result = new RedirectResult( "http://www.someurl.com" );
Run Code Online (Sandbox Code Playgroud)