ASP.NET маршрут Значения по умолчанию MVC?

4 ответа

Убедитесь, что Маршрут по умолчанию находится в НИЖНЕМ вашей указанной таблице маршрутов. Порядок имеет значение, когда дело доходит до таблиц маршрутизации ASP.NET MVC.

Правильный порядок - это ваш «наиболее конкретный» маршрут до наименее конкретного.

34
ответ дан 30 November 2019 в 05:54
поделиться

Если вы не указываете имя маршрута или действие определяется с помощью HTTP-запроса, оно будет выглядеть в порядке, в котором они были добавлены. В первый раз, когда он находит подходящий, он останавливается. Так что, вероятно, происходит совпадение предыдущего с тем, что вы добавили.

2
ответ дан 30 November 2019 в 05:54
поделиться

Фил Хаак выпустил инструмент отладки маршрутов, который может оказаться неоценимым в понимании подобных проблем.

С помощью этого инструмента вы можете увидеть, как ваше приложение MVC анализирует URL-адрес и сопоставляет его с вашим RouteTable.

12
ответ дан 30 November 2019 в 05:54
поделиться

На самом деле Джордж прав . MVC Routing соблюдает маршрут заказа. Ваш последний маршрут должен быть как можно более общим, а предыдущий - как можно более конкретным.

В вашем случае оба являются общими. Вы должны

MapRoute("SomeAction", "Post/{action}", new {controller = "Post", role = "User");

, а затем

MapRoute("Default", new {controller="Home", action="Index", role = "Anonymous"});

, чтобы указать специфичность для обоих маршрутов.

17
ответ дан 30 November 2019 в 05:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: