来自ActionFilter的RedirectToAction

时间:2009-07-28 08:33:18

标签: asp.net-mvc

如何从自定义ActionFilter访问RedirectToAction?

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);
    }   
}

2 个答案:

答案 0 :(得分:8)

试试这个:

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

答案 1 :(得分:1)

你真的没有。您可以使用RedirectResult或RedirectToRouteResult。如果您正在考虑基于身份验证重定向,则应该考虑Controller是ActionFilter,因此您可以从基本控制器类继承此基本行为。只需覆盖基类中的OnActionExecuting方法。