2011-05-23 146 views
0

有人能告訴我爲什麼,像這樣一個網址...ASP.NET MVC路由和查詢字符串

http://localhost:22220/groups/go/1234/2525?name=Bob 

此路由映射不匹配......

routes.MapRoute(null, // Route name 
       "groups/go/{groupId}/{userId}/{name}", 
       new { controller = "Groups", action = "Go" }); 

但此路線映射看起來匹配? (使用菲爾哈克的路線測試儀,這是「生成的URL」)......

context.MapRoute("Teams_Default", 
       "Teams/{controller}/{action}/{id}", 
       new { id = UrlParameter.Optional }); 
+3

URL不應該是http:// localhost:22220/groups/go/1234/2525/Bob'以匹配您的路線嗎? – 2011-05-23 22:22:05

回答

0

由於上一個'name'參數在該URL上未正確形成,因此第一條路徑未得到匹配。如果將路線更改爲:

routes.MapRoute(null, // Route name 
       "groups/go/{groupId}/{userId}/{name}", 
       new { controller = "Groups", action = "Go", name = "Bob" }); 

它會因'name'的默認值而起作用。

顯然,這對你並不好,因爲你想要讀取名字。

我認爲更大的問題是:該URL是如何生成的?