Establecer filterContext.Result
Con el nombre de la ruta:
filterContext.Result = new RedirectToRouteResult("SystemLogin", routeValues);
También puedes hacer algo como:
filterContext.Result = new ViewResult
{
ViewName = SharedViews.SessionLost,
ViewData = filterContext.Controller.ViewData
};
Si quieres usar RedirectToAction
:
Se podría hacer público un RedirectToAction
método en el controlador ( preferiblemente en su controlador de base ) que simplemente llama al protegido RedirectToAction
de System.Web.Mvc.Controller
. Agregar este método permite una llamada pública a usted RedirectToAction
desde el filtro.
public new RedirectToRouteResult RedirectToAction(string action, string controller)
{
return base.RedirectToAction(action, controller);
}
Entonces su filtro se vería así:
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var controller = (SomeControllerBase) filterContext.Controller;
filterContext.Result = controller.RedirectToAction("index", "home");
}