当路由与出站网址匹配时,路由系统将尝试在路由的网址格式中找到每个段变量的值还可以查看当前请求中的值。如有必要,路由系统将重用传入URL中的段变量值
摘录来自 Pro Asp.Net MVC 4 一书:
路由系统将仅为段变量重用值 在URL模式中出现的时间早于提供的任何参数 到Html.ActionLink方法。假设我们尝试创建类似的链接 这样:
@ Html.ActionLink(“点击我”,“列表”,“目录”,新{color =“Aqua”}, 空)
我们提供了颜色值,但不提供页面值。但是颜色 出现在URL模式的页面之前,因此路由系统 不会重用传入URL中的值,路由也不会 比赛。
...我们强烈建议您不要依赖此行为 您为URL模式中的所有段变量提供值。 依靠这种行为,你最终会对此做出假设 用户提出请求的顺序
注意:摘录所指的路线定义为:
routes.MapRoute("MyRoute", "{controller}/{action}/{color}/{page}");
a)
路由系统将仅为段变量重用值 在URL模式中出现的时间早于提供的任何参数 到Html.ActionLink方法
如果路由系统还重用网址模式中稍后出现在网址格式中的值而不是提供给Html.ActionLink
的参数,会出现什么问题?
b)
我们强烈建议您不要依赖此行为 您为URL模式中的所有段变量提供值。 依靠这种行为,你最终会对此做出假设 用户提出请求的顺序
我不明白如何不为所有段变量提供值转换成对用户发出请求的顺序做出假设?!
非常感谢