MVC 3 Routing - Маршрутизация с одним действием - PullRequest
0 голосов
/ 10 октября 2011

У меня есть вопрос о маршрутизации / навигации в одном контроллере.

Допустим, у меня есть следующая настройка маршрута

routes.MapLowercaseRoute("SomeAwesomeControllerLookup",
    "SomeAwesomeController/{genre}/{region}/{lookup}",
    new
    {
        controller = "SomeAwesomeController",
        action = "Index",
        genre = UrlParameter.Optional,
        region = UrlParameter.Optional,
        lookup = UrlParameter.Optional,
});

И URL-адрес действий следующим образом

<a href="@Url.Action("Index", "SomeAwesomeController", new { genre = "Movies" })">Movies</a>

Я ожидал бы, что мои URL будут выглядеть как "/ someawesomecontroller / movies" каждый раз, однако, когда я перешел на отфильтрованный URL, такой как "/ someawesomecontroller / movies / boston / today" URL моего меню остаются "/ someawesomecontroller / movies / boston / today "независимо от параметров, указанных в приведенном выше HTML-коде.

Я могу убедиться, что отображаемый URL-адрес всегда будет "/ someawesomecontroller / movies" без его жесткого кодирования?

1 Ответ

0 голосов
/ 10 октября 2011

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

<a href="@Url.Action("Index", "SomeAwesomeController", new { genre = "Movies", region="", lookup="" })">Movies</a>

Должно решить вашу проблему.(Можно также попробовать «ноль», но я считаю, что это не переопределит существующие значения маршрута.

...