Response.Redirect не работает внутри пользовательского ActionFilter - PullRequest
1 голос
/ 04 мая 2010

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

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], ОСТАЛОСЬ.Есть идеи?Спасибо.

1 Ответ

9 голосов
/ 04 мая 2010

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

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