我正在尝试创建遵循树导航系统结构的路线,即我想将树中的整个路径包含在我的路线中。所以如果我有一棵像这样的树
然后我希望能够有这样的路线
- site.com/catalog/computers/software/graphics
这本身并不难,可以通过如下所示的路线来捕获
但是我希望能够在该 URL 的末尾添加产品信息,如下所示
- site.com/catalog/computers/software/graphics/title=Photoshop
这意味着我需要像下面的示例那样定义的路由
- site.com/{*categories}/title={名称}
- site.com/{*类别}
然而,这些路由中的第一个是无效的,因为在贪婪的参数(例如 {*categories})之后不会出现任何其他内容,所以我有点卡住了。我一直在考虑实现正则表达式路由,或者也许使用 IRouteContraint 来解决这个问题,但我想不出一个合适的解决方案,可以让我也使用Html.ActionLink(...)生成同时填写 {*categories} 和 {name} 的出站 URL 的方法
任何意见是极大的赞赏!
你们中的一些人可能昨天看到了我提出的类似问题,但它已被我删除,因为我已经对此进行了更多思考,并且旧问题包含对我的问题的不完整描述
更新2008/11/26我将解决方案发布于http://thecodejunkie.blogspot.com/2008/11/supporting-complex-route-patterns-with.html http://thecodejunkie.blogspot.com/2008/11/supporting-complex-route-patterns-with.html
URL 中任意位置的贪婪分段
我写过GreedyRoute
支持 URL 中任意位置的贪婪(捕获所有)分段的类。您已经有一段时间不需要它了,但将来它可能对其他人有用。
它支持以下任何模式:
-
{segment}/{segment}/{*greedy}
- 默认情况下已经支持此功能Route
class
-
{segment}/{*greedy}/{segment}
- 中间贪心
-
{*greedy}/{segment}/{segment}
- 一开始就贪心
您可以阅读所有详细信息在我的博客文章上 http://erraticdev.blogspot.com/2011/01/custom-aspnet-mvc-route-class-with.html并获取代码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)