Nếu bộ điều khiển chuyển hướng kế thừa từ cùng một baseController
nơi chúng ta ghi đè OnActionExecuting
phươ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 OnActionExecuting
phươ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 OnActionExecuting
phươ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.