2013-07-28 48 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映射一起缓存。