MVC конфликтный маршрут - PullRequest
0 голосов
/ 05 июля 2011

У меня есть два маршрута, которые удовлетворяют двум разным URL.Как я могу удалить неоднозначность?

В зависимости от того, кто первый в списке, который выбирается.

downloadFile и isEdit как обнуляемый bool.

context.MapRoute("Asset_GetImage", "Admin/{controller}/{action}/{assetId}/{downloadFile}");
context.MapRoute("News_Read", "Admin/{controller}/{action}/{newsId}/{isEdit}");

спасибо

Ответы [ 2 ]

4 голосов
/ 05 июля 2011

Вам не нужны отдельные маршруты вообще; вы собираете одинаковые типы данных в каждом.

Просто измените assetId и newsId на просто id и соответствующим образом кодируйте свои контроллеры. Имя контроллера уже есть в URL.

2 голосов
/ 05 июля 2011

вы можете сделать маршруты более конкретными.

Например, укажите {controller} для каждого из них:

context.MapRoute("Asset_GetImage", "Admin/Asset/{action}/{assetId}/{downloadFile}");
context.MapRoute("News_Read", "Admin/News/{action}/{newsId}/{isEdit}");

вам просто нужно убедиться, что контроллер добавлен по умолчанию.

как пример из одного из моих приложений:

routes.MapRoute(
    "Calendar",
    "Account/Calendar/{Year}/{Month}",
    new { controller = "Account", action = "Calendar", Year = DateTime.Now.Year, Month = DateTime.Now.Month }
);

{controller} и {action} отсутствуют в маршруте, но значения по умолчанию все еще установлены, поэтому он знает, что с ним делать

...