2010-05-04 3 views
1

Моего кода выглядит следующим образом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] применил к нему STILL выполняет. Есть идеи? Благодарю.

+1

должно ли это быть помечено как ASP.NET MVC? – Jamiec

ответ

9

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

filterContext.Result = new RedirectResult("http://www.someurl.com"); 
Смежные вопросы