3
我有以下兩種途徑來定義:ASP.NET MVC 3 Url.Action匹配
routes.MapRoute(null, "" // ~/
,new { controller="Products", action="List", page=1 });
routes.MapRoute(null, "{category}/Page{page}" // ~/CategoryName/Page21
, new { controller = "Products", action = "List", page = 1 }
, new { page = @"\d+" } //page must be numerical
);
我生成使用視圖此代碼的URL正在使用的ProductsController:Url.Action("List", new {page=p, category=Model.CurrentCategory})
隨着當前的配置,我得到這個網址:/騎馬/第2頁
不過,如果我是忽略默認頁面參數從第一條路,我得到這個網址,而不是:/類別=騎&頁= 2
在我看來,那Url.Action()
可以匹配這兩條路徑,並且正在使用第二個途徑,如果我有默認在第一路指定頁面參數的決定但是如果該參數被省略,則選擇使用第一路由。
鑑於我爲頁面參數提供了一個值,爲什麼要從路由的默認值中排除它會影響我返回的URL?
謝謝!
謝謝你,@JamesAllen。我試過Glimpse。它向我顯示了匹配我的頁面的路線。我無法找到任何可以告訴我爲什麼我的視圖中的Url.Action()選擇我在帖子中提到的路線的信息。 – Ryan 2011-04-21 08:18:06