2

在 MVC 4 应用程序中定义路由时,我可以提供默认参数列表。我应该为可选参数提供什么值:UrlParameter.Optional空字符串

例子:

routes.MapRoute("simple", "{controller}/{action}/{id}",
  new {controller = "Home", action = "Index", id = UrlParameter.Optional});
routes.MapRoute("simple", "{controller}/{action}/{id}",
  new {controller = "Home", action = "Index", id = ""});

id = ""上面的例子和id = UrlParameter.Optional上面的例子有什么区别吗?

请注意,一些控制器操作将使用id(类型string),而一些控制器操作将是无参数的。

4

1 回答 1

4

差异是微妙的,但几乎不重要

UrlParameter.Optional表示将 null 传递给 Action 方法以代替值。

id = ""表示默认值“”(非空)将传递给操作方法。

在这两种情况下,在路由中不包含 id 参数不会阻止 MVC 框架找到正确的方法。

在 的情况下UrlParameter.Optional,您应该使所有相关的操作方法都采用可为空的参数

类型很重要

您不应该应用于id=""使用整数的路由。

于 2013-02-06T20:02:18.923 回答