Якщо перенаправлений контролер успадковує ту саму, baseControllerде ми перекриваємо OnActionExecutingметод, викликає рекурсивний цикл. Припустимо, ми переспрямовуємо його на дію входу контролера облікового запису, тоді дія входу буде викликати OnActionExecutingметод і перенаправлятись на ту саму дію входу знову і знову ... Тож ми повинні застосувати OnActionExecutingметод check, щоб перевірити погоду, якщо запит від того ж контролера, якщо тому тоді не перенаправляйте його знову на вхід. ось код:
захищені переохолодження.
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)ви могли також використовуватиnew RedirectToAction(string action, string controller). Це можливо було додано до MVC після опублікування відповіді. Ваше рішення все одно поставило мене на правильний шлях.