问题
My code is the following
public class SessionCheckAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (/*condition*/)
{
filterContext.HttpContext.Response.Redirect("http://www.someurl.com",true);
}
base.OnActionExecuting(filterContext);
}
}
Now, the question is WHY does the action that is has [SessionCheck] applied to it STILL executes. Any ideas? Thanks.
回答1:
Don't use Response.Redirect, rather replace the Result on the context with a RedirectResult. This will terminate processing in the filter chain and cause the redirect response to be sent immediately.
filterContext.Result = new RedirectResult( "http://www.someurl.com" );
来源:https://stackoverflow.com/questions/2765131/response-redirect-not-working-inside-an-custom-actionfilter