约束路由,一般在什么情况下使用哪?为什么需要约束哪?请帮忙给个实际场景吧!
只听说路由,没听说约束路由
这哥们想说路由约束吧。
比如这个路由:
route.MapRoute("MyRoute","{controller}/{action}/{id}",new {controller="Home",action="Index",id=UrlParameter.Optional});
你可以用/controller/action/1/匹配到。
但是我这里有个路由是这样/controller/action/xxx/我不想我用这个路由是想访问别的controller但是这个路由也会被上面的路由规则匹配到,而且参数类型“xxx”还不匹配id这样就会造成错误。
那么我就要加路由约束让上面的路由规则只匹配到/controller/action/id/中的id仅为数字的情况。
写法是这样子的。
route.MapRoute("MyRoute","{controller}/{action}/{id}",new {controller="Home",action="Index",id=UrlParameter.Optional},
new {id=@"\d+"});
最后一行new{id=@"\d+"});
楼上正解,其实也就是一个字符串验证的问题