Установить filterContext.Result
С названием маршрута:
filterContext.Result = new RedirectToRouteResult("SystemLogin", routeValues);
Вы также можете сделать что-то вроде:
filterContext.Result = new ViewResult
{
ViewName = SharedViews.SessionLost,
ViewData = filterContext.Controller.ViewData
};
Если вы хотите использовать RedirectToAction:
Вы можете создать открытый RedirectToActionметод на вашем контроллере ( предпочтительно на его базовом контроллере ), который просто вызывает защищенный RedirectToActionот System.Web.Mvc.Controller. Добавление этого метода позволяет для публичного вызова своих RedirectToAction контекстуальных из фильтра.
public new RedirectToRouteResult RedirectToAction(string action, string controller)
{
return base.RedirectToAction(action, controller);
}
Тогда ваш фильтр будет выглядеть примерно так:
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var controller = (SomeControllerBase) filterContext.Controller;
filterContext.Result = controller.RedirectToAction("index", "home");
}