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

时间:2010-05-04 12:17:15

标签: 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);
    }

}

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

1 个答案:

答案 0 :(得分:9)

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

filterContext.Result = new RedirectResult( "http://www.someurl.com" );