2012-04-18 4 views
1

Я читаю Pro ASP.NET MVC 3.0 от Appress. Глава 11 посвящена системе маршрутизации URL-адресов. В дополнительные переменные из исходящего раздела объясняется о получении значений сегмента из URL , например, для ревущий маршрутизации:Исходящая маршрутизация в asp.net mvc

routes.MapRoute("MyRoute", "{controller}/{action}/{color}/{page}"); 

, если пользователь находится в данный момент в URL/Каталог/Список/фиолетовый/123, и мы оказываем ссылку в следующим образом:

@Html.ActionLink("Click me", "List", "Catalog", new {page=789}, null) 

маршрутизация система будет соответствовать против маршрута и он будет генерировать следующий HTML:

<a href="/Catalog/List/Purple/789">Click me</a> 

Но когда я использую этот код для следующего примера он генерирует:

<a href="/Catalog/List/Purple/">Click me</a> 

я не понимаю, почему?

ответ

0

Попробуйте переместить это отображение маршрута выше других отображений маршрута в файле global.asax

+0

На самом деле я использую этот пример в ASP.NET MVC Интернет образца с некоторыми изменениями (Home и индекс вместо каталога и списка) и создает нечетные URL-адреса, например, на домашней странице, о url is Home/Index/purple. Также у меня есть только один маршрут и Html.Actionlinks для «About» не предоставляет цвет varialbe @ Html.ActionLink («Главная», «Индекс», «Главная», новый {color = purple, page = 10}, null) ----- @ Html.ActionLink («О», «О», «Главная», новый {страница = 789}, null) я ожидал, что проект «Главная/О/Фиолетовый/10» для «О» вместо «Главная/Индекс/Фиолетовый» на главной странице –

+0

Вы пробовали отладчик маршрута? Вы сможете точно увидеть, какой URL-адрес попадает на какой-то маршрут, чтобы отличить, где ваша проблема, попробуйте: http://haacked.com/archive/2008/03/13/url-routing-debugger.aspx – mattytommo

+0

Это потрясающе. Я проверю это –

Смежные вопросы