|
6
|
| nathanchere Jitendra Vyas · 技术社区 · 16 年前 |
|
|
1
13
您的示例的问题在于,匹配发生在第一个路由上,并且它将“5”作为用户名参数。您可以使用约束来限制每个参数接受的值,以实现您想要的。由于接受ID的“默认”路由比“customerview”路由更具限制性,因此我将首先列出“默认”路由,并对ID参数进行约束:
这将导致第一个路由仅在ID为整数值时匹配。然后,所有其他请求都将进入“customerview”路由,该路由将接收没有整数作为第三个参数的任何其他请求。 退房 Creating a Route Constraint 关于约束的解释。 |
|
|
2
2
路由值到动作参数的绑定发生在框架确定要使用哪个路由之后。路由选择是使用“First Match Wins”启发式方法执行的:即使后来定义了“Better”路由,也会使用能够成功匹配传入请求的第一个路由。 迈克尔的解决方案是正确的。您需要首先列出默认路由,使用路由约束仅匹配ID为数字的URL。你的第二条限制较少的路线应该是下一条。 注释 :如果您遵循Michael的解决方案,如果您有任何用户名仅由数字组成的用户,则会遇到问题。您可以考虑在路由中添加一些其他识别因素,例如在第二个路由中添加关键字“user”:
|
|
|
Aleksa Ristic · 手动创建全局。尽快。cs文件不工作 8 年前 |