2009-07-28 32 views
5

Özel ActionFilter'dan RedirectToAction'a nasıl erişilir?RedirectToAction ActionFilter öğesinden

public class ExceptionHandlingFilterAttribute : ActionFilterAttribute 
{ 
    public override void OnActionExecuted(ActionExecutedContext filterContext) 
    { 
     if (filterContext.Exception != null && !filterContext.ExceptionHandled) 
     { 
      filterContext.ExceptionHandled = true; 

      // HERE : RedirectToAction("ServiceNotFound","Error"); 

     } 
     base.OnActionExecuted(filterContext); 
    } 
} 

cevap

1

Gerçekten değil. Bir RedirectResult veya RedirectToRouteResult kullanabilirsiniz. Kimlik doğrulamaya dayalı olarak yeniden yönlendirmeyi düşünüyorsanız, bir Denetleyicinin bir ActionFilter olduğunu düşünmeniz gerekir; bu nedenle, bu temel davranışı bir temel denetleyici sınıfından devralabilirsiniz. Temel sınıftaki OnActionExecuting yöntemini geçersiz kılmanız yeterlidir.

8

bu deneyin:

filterContext.Result = new RedirectToRouteResult(
    new System.Web.Routing.RouteValueDictionary { 
     {"controller", "Error"}, {"action", "ServiceNotFound"} 
    } 
); 
İlgili konular