在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
),而某些控制器操作将无参数。
答案 0 :(得分:4)
差异很微妙,但几乎不重要
UrlParameter.Optional
表示将null传递给Action Method而不是值。
id = ""
表示默认值“”(非空)将传递给Action方法。
在这两种情况下,路由中不包含id参数都不会阻止MVC框架找到正确的方法。
在UrlParameter.Optional
的情况下,您应该使所有可关联的Action Methods采用可为空的参数
输入内容
您不应将id=""
应用于使用整数的路由。