Как вы отлаживаете "Нет маршрута в таблице маршрутов, соответствующих заданным значениям". в ASP.NET MVC

Кажется, я все время сталкиваюсь с этой ошибкой:

Ни один маршрут в таблице маршрута не соответствует указанным значениям.

Необработанное исключение возникло во время выполнения текущего веб-запроса. Просмотрите трассировку стека для получения дополнительной информации об ошибке и ее возникновении в коде.

Трассировка стека - это всего лишь куча мусора MVC.

Очевидно, что я запрашиваю несуществующий маршрут, но как узнать, какой маршрут он пытался запросить? Мне бы очень хотелось узнать фактический URL-адрес и HTTP-метод. Как я могу это обнаружить?

(Я привык к Django, где попытка URL-адреса является частью исключения и предпочла бы более эффективный метод, чем просмотр источника моей страницы и выяснение его.)

Ответ 1

Вы можете использовать MvcContrib RouteDebugger класс утилиты, чтобы лучше понять, к какому маршруту был обработан запрос.

Все, что вам нужно сделать, это добавить ссылку на MvcContrib и добавить этот код в Global.asax

RegisterRoutes(RouteTable.Routes);
RouteDebugger.RewriteRoutesForTesting(RouteTable.Routes);

Ответ 3

Вы можете использовать return Redirect ( "/Home/index" ) вместо

return RedirectToAction("Home","index");

или

Решение для меня состояло в том, чтобы передать в Районе значение параметра параметров маршрута:

return RedirectToAction("ActionName", "ControllerName");

в

return RedirectToAction("ActionName", "ControllerName", new { area = "AreaName" })