2013-07-28 47 views
2

是什麼的asp.net的MVC圖路線差別不大

routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
     ); 

結果和

routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{*id}", 
      defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
     ); 

什麼之間的區別 「*」 做的,比沒有其他。

+0

在第二個你有{* id} –

回答

4

帶星號的標記id將其標記爲「通吃」參數,例如,

/Content/List/1 --> id = "1" 

/Content/List/My/Content --> id = "My/Content" 

然而,有以下途徑:"{controller}/{action}/{id}"第二個URL將不匹配的。

更多MSDN上包羅萬象的參數信息:

處理額外段以這種方式紀念你的最後一個 參數有星號(*)。這被稱爲全部參數 參數。具有catch-all參數的路由也將匹配不包含最後一個參數的任何值的URL 。以下 示例顯示了匹配未知數量段 段的路線模式。查詢/ {queryname}/{* queryvalues}

+0

嗯好點。謝謝。 – serefbilge

0

here是一個類似的問題。第二個只是使它與Catchall映射一起緩存。