Đặt bộ lọcContext.Result
Với tên tuyến đường:
filterContext.Result = new RedirectToRouteResult("SystemLogin", routeValues);
Bạn cũng có thể làm một cái gì đó như:
filterContext.Result = new ViewResult
{
ViewName = SharedViews.SessionLost,
ViewData = filterContext.Controller.ViewData
};
Nếu bạn muốn sử dụng RedirectToAction:
Bạn có thể tạo một RedirectToActionphương thức công khai trên bộ điều khiển của mình ( tốt nhất là trên bộ điều khiển cơ sở của nó ) mà chỉ cần gọi bảo vệ RedirectToActiontừ System.Web.Mvc.Controller. Thêm phương thức này cho phép thực hiện cuộc gọi công khai tới bạn RedirectToAction từ bộ lọc.
public new RedirectToRouteResult RedirectToAction(string action, string controller)
{
return base.RedirectToAction(action, controller);
}
Sau đó, bộ lọc của bạn sẽ trông giống như:
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var controller = (SomeControllerBase) filterContext.Controller;
filterContext.Result = controller.RedirectToAction("index", "home");
}