Встановити 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");
}