Если перенаправленный контроллер наследуется от того же места, baseControllerгде мы переопределяем OnActionExecutingметод, вызовем рекурсивный цикл. Предположим, мы перенаправили его на действие входа контроллера учетной записи, затем действие входа вызовет OnActionExecutingметод и снова и снова будет перенаправлен на одно и то же действие входа в систему ... Поэтому мы должны применить OnActionExecutingметод check in, чтобы проверить, поступил ли запрос от того же контроллера, если так что тогда не перенаправляйте это действие входа снова. вот код:
защищенное переопределение.
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 после того, как вы опубликовали свой ответ. Ваше решение в любом случае поставило меня на правильный путь.