RedirectToRoute не работает в проекте ASP. NET MVC - PullRequest
0 голосов
/ 14 февраля 2020

Я создаю несколько сложный ASP. NET MVC сайт с несколькими контроллерами. В Index () - методе / обработчике каждого контроллера я выполняю некоторую проверку и перенаправляю на маршрут по умолчанию в случае ошибки, чтобы пользователь перенаправлялся на страницу по умолчанию на веб-сайте, когда что-то идет не так. Однако по какой-то причине редирект просто не работает. Я использую RedirectToRoute("Default") для перенаправления на маршрут по умолчанию, но каким-то образом метод Index () контроллера, в котором я сейчас нахожусь, просто вызывается снова, и перенаправление не происходит. Это приводит к бесконечному l oop, и в какой-то момент браузер отображает ошибку перенаправления. У меня есть маршрут по умолчанию, определенный следующим образом:

routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}",
    defaults: new { controller = "Home", action = "Index" }

Почему он не перенаправляет на действие Index Home-контроллера?

1 Ответ

1 голос
/ 14 февраля 2020

Потому что вы перенаправляете по тому же маршруту, что и сейчас. Значения по умолчанию, указанные в маршруте «По умолчанию», применяются только в том случае, если отсутствуют значения «контроллер» и «действие», что не соответствует действительности - вы работаете внутри указанного действия c контроллера. Вероятно, вы хотите перенаправить на root вашего приложения, которое обычно находится там, где вы go в первую очередь (ваш маршрут по умолчанию, кажется, указывает на это).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...