asp.net mvc maproute定义可变数量的自定义片断变量
2014-01-26 13:20
423 查看
有时候我们定义了如{controller}/{action}/{id}之类的路由规则,但是后面还可能跟上一堆可能会有可能不会有,但是路由规则是一样的,如{controller}/{action}/{id}/{usertype}/{group},我们能把id, usertype, group通通设成option吗?几个“可选”的参数显然会打架,maproute提供了一种曲线的方法,就是{*catchName},这个catchName你可以自定义,也就是说,把所有自定义的片段都用一个变量捕获起来,实例如下:
routes.MapRoute("MyRoute", "{controller}/{action}/{id}/{*catchall}", new { controller = "Home", action = "Index", id = UrlParameter.Optional });
这个路由定义的匹配情况如下所示:
说的“曲线”的意思就是,看最后的Delete和Delete/Perm,路由表并没有把它们区别开来,只是简单地认为是一个参数。也就是说,把Delete和Perm的工作得由人工来处理了。
但至少,可以在Customer/List/这条路由规则上无限扩展了。
MSDN文档:http://msdn.microsoft.com/en-us/library/cc668201.aspx#handling_a_variable_number_of_segments_in_a_url_pattern
routes.MapRoute("MyRoute", "{controller}/{action}/{id}/{*catchall}", new { controller = "Home", action = "Index", id = UrlParameter.Optional });
这个路由定义的匹配情况如下所示:
说的“曲线”的意思就是,看最后的Delete和Delete/Perm,路由表并没有把它们区别开来,只是简单地认为是一个参数。也就是说,把Delete和Perm的工作得由人工来处理了。
但至少,可以在Customer/List/这条路由规则上无限扩展了。
MSDN文档:http://msdn.microsoft.com/en-us/library/cc668201.aspx#handling_a_variable_number_of_segments_in_a_url_pattern
相关文章推荐
- asp.net mvc Route 使用自定义条件(constraints)禁止某ip登陆
- Asp.net MVC 利用自定义RouteHandler来防止图片盗链
- ASP.NET MVC:自定义 Route 生成小写 Url
- ASP.NET MVC:自定义Route让URL更优雅
- 转:【译】Asp.net MVC 利用自定义RouteHandler来防止图片盗链
- ASP.NET MVC:自定义 Route 生成小写 Url(转)
- 【记录】ASP.NET MVC MapRoute .htm 不起作用
- [ASP.NET MVC 专题] 如何为Route构造相关的自定义Configuration
- ASP.NET MVC:自定义 Route
- ASP.NET MVC自定义路由 - 实现IRouteConstraint限制控制器名(转载)
- asp.net MVC URL Routing问题 关于routes.MapRoute()方法
- asp.net mvc Route 使用自定义条件(constraints)禁止某ip登陆
- ASP.NET MVC:自定义 Route 生成小写 Url
- 创建自定义路由处理程序(Creating a Custom Route Handler) | 定制路由系统| 高级路由特性 |精通ASP-NET-MVC-5-弗瑞曼
- ASP.NET MVC:自定义 Route 让你的 Url 更优雅
- 一起谈.NET技术,ASP.NET MVC:自定义 Route 以生成小写的 Url
- 【译】Asp.net MVC 利用自定义RouteHandler来防止图片盗链 (转)
- ASP.NET MVC:自定义 Route 让你的 Url 更优雅
- (转)(转)【译】Asp.net MVC 利用自定义RouteHandler来防止图片盗链