我的代码如下
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执行。有任何想法吗?感谢。
答案 0 :(得分:9)
不要使用Response.Redirect,而是使用RedirectResult替换上下文中的Result。这将终止过滤器链中的处理并导致重定向响应立即发送。
filterContext.Result = new RedirectResult( "http://www.someurl.com" );