2013-10-02 69 views
0

在MVC中,默認路由URL模式是 - URL:「{控制器}/{行動} /(編號)」在MVC創建一個新的路由

當我添加新的路由作爲默認之前如下所示路由,默認路由的URL顯示爲Home/Index?id = 5而不是Home/Index/5。這怎麼解決。

routes.MapRoute(
      name: "Name", 
      url: "{controller}/{action}/{name}", 
      defaults: new { controller = "Home", action = "Browse", name = UrlParameter.Optional } 
     ); 
+0

你能給一個默認值命名嗎?如果是這樣,那就應該解決這個問題:routes.MapRoute( name:「Name」, url:「{controller}/{action}/{name}」, 默認值:new {controller =「Home」,action = 「Browse」,name =「」} ); –

回答

0

默認路由將永遠不會被命中,因爲您從路由角度添加的路由完全相同。因此,如果它是唯一的路線,或者放在您的路線之前,您的路線將捕獲默認路線會捕獲的所有內容。兩者都會匹配一個,兩個和三個網段的網址。

+0

有沒有修復? – user2813261

+0

@ user2813261你是否嚴格需要默認路由?唯一的區別是你的'action'有不同的默認值,第三個段的名稱不同。 – asymptoticFault

0

該路線是不必要的,幾乎沒用。 就像@asymptoticFault所說的那樣,它的用途與默認的一樣。

相關問題