Response.Redirect не работает внутри пользовательского ActionFilter

Мой код следующий

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], ПО-ПРЕЖНЕМУ выполняется. Любые идеи? Спасибо.


person mitch    schedule 04.05.2010    source источник
comment
это тоже должно быть помечено как ASP.NET MVC?   -  person Jamiec    schedule 04.05.2010


Ответы (1)


Не используйте Response.Redirect, вместо этого замените Result в контексте на RedirectResult. Это прекратит обработку в цепочке фильтров и приведет к немедленной отправке ответа перенаправления.

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