Nếu bộ điều khiển chuyển hướng kế thừa từ cùng một baseControllernơi chúng ta ghi đè OnActionExecutingphương thức gây ra vòng lặp đệ quy. Giả sử chúng ta chuyển hướng nó sang hành động đăng nhập của bộ điều khiển tài khoản, thì hành động đăng nhập sẽ gọi OnActionExecutingphương thức và chuyển hướng đến cùng một hành động đăng nhập ... Vì vậy, chúng ta nên áp dụng OnActionExecutingphương thức kiểm tra để kiểm tra thời tiết yêu cầu từ cùng một bộ điều khiển nếu vì vậy sau đó không chuyển hướng hành động đăng nhập lại. đây là mã:
ghi đè được bảo vệ.
void OnActionExecuting(ActionExecutingContext filterContext)
{
try
{
some condition ...
}
catch
{
if (filterContext.Controller.GetType() != typeof(AccountController))
{
filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary { { "controller", "Account" }, { "action", "Login" } });
}
}
}
new RedirectResult(url)bạn cũng có thể sử dụngnew RedirectToAction(string action, string controller). Điều này có thể đã được thêm vào MVC sau khi bạn đăng câu trả lời của mình. Giải pháp của bạn đưa tôi đi đúng hướng nào.