Почему нет этого маршрута к действию по умолчанию? - PullRequest
1 голос
/ 10 января 2012

Итак, у меня есть этот маршрут:

routes.MapRoute(
     "Solutions",
     "{lang}/Solutions/{controller}/{action}",
     new { lang="en-US", controller = "WhatWeDo", action = "Index"}
    );

Когда я перехожу к "

/en-GB/Solutions/SolutionA/Index/

Маршруты очень хорошие, но

/en-GB/Solutions/SolutionA/

Не зависит"маршрут вообще. Однако, если я уберу параметр lang, маршрут будет выглядеть как

routes.MapRoute(
     "Solutions",
     "Solutions/{controller}/{action}",
     new { controller = "WhatWeDo", action = "Index"}
    );

, и я перейду к

/Solutions/SolutionA/

Маршруты просто прекрасны. Есть идеи?Мне бы не хотелось постоянно указывать действие по умолчанию для этого маршрута. Спасибо.

1 Ответ

2 голосов
/ 11 января 2012

В каком порядке вы определяете свои маршруты в global.asax, это может иметь какое-то отношение к проблеме, но я предполагаю, что она соответствует маршруту по умолчанию как таковому

controller: en-GB  
action: Solutions
id : SolutionA

Что вы могли бы сделать, это настроить какое-либо регулярное выражение, совпадающее на ваших маршрутах, чтобы исключить ваш язык из маршрута по умолчанию? Попробуйте эту ссылку для получения дополнительной информации об использовании регулярных выражений для фильтрации маршрутов http://www.iridescence.no/post/Defining-Routes-using-Regular-Expressions-in-ASPNET-MVC.aspx

...