Как вы отлаживаете "Нет маршрута в таблице маршрутов, соответствующих заданным значениям". в ASP.NET MVC
Кажется, я все время сталкиваюсь с этой ошибкой:
Ни один маршрут в таблице маршрута не соответствует указанным значениям.
Необработанное исключение возникло во время выполнения текущего веб-запроса. Просмотрите трассировку стека для получения дополнительной информации об ошибке и ее возникновении в коде.
Трассировка стека - это всего лишь куча мусора MVC.
Очевидно, что я запрашиваю несуществующий маршрут, но как узнать, какой маршрут он пытался запросить? Мне бы очень хотелось узнать фактический URL-адрес и HTTP-метод. Как я могу это обнаружить?
(Я привык к Django, где попытка URL-адреса является частью исключения и предпочла бы более эффективный метод, чем просмотр источника моей страницы и выяснение его.)
Ответы
Ответ 1
Вы можете использовать MvcContrib RouteDebugger
класс утилиты, чтобы лучше понять, к какому маршруту был обработан запрос.
Все, что вам нужно сделать, это добавить ссылку на MvcContrib и добавить этот код в Global.asax
RegisterRoutes(RouteTable.Routes);
RouteDebugger.RewriteRoutesForTesting(RouteTable.Routes);
Ответ 2
Там есть отличный отладчик маршрутов.
Ответ 3
Вы можете использовать return Redirect ( "/Home/index" ) вместо
return RedirectToAction("Home","index");
или
Решение для меня состояло в том, чтобы передать в Районе значение параметра параметров маршрута:
return RedirectToAction("ActionName", "ControllerName");
в
return RedirectToAction("ActionName", "ControllerName", new { area = "AreaName" })