2012-04-18 68 views
1

我正在閱讀Appress的Pro ASP.NET MVC 3.0。第11章是關於URLs路由系統。 在從離開段傳遞額外的變量來自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互聯網樣品中使用這個例子有了一些變化(首頁和索引,而不是目錄和清單),它產生奇怪的網址,例如在主頁,關於url是Home/Index/purple我也只有一個路由和Html.Actionlinks爲「關於」不提供顏色varialbe @ Html.ActionLink(「Home」,「Index」, 「Home」,新{color = purple,page = 10},null) ----- @ Html.ActionLink(「關於」,「關於」,「家」,新{page = 789},null)我預計它會在主頁中爲「About」項目顯示「Home/About/Purple/10」而不是「Home/Index/Purple」 – 2012-04-18 21:58:17

+0

您是否嘗試過Route Debugger?您將能夠確切地看到哪些網址正在通過哪條路線來區分您的問題,請嘗試:http://haacked.com/archive/2008/03/13/url-routing-debugger.aspx – mattytommo 2012-04-19 09:13:13

+0

這很棒。我會測試它 – 2012-04-19 13:05:44