我正在尝试创建遵循树导航系统结构的路线,即我想在我的路线中包含树中的整个路径。所以如果我有一棵看起来像这样的树
- 电脑
- 软件
- 发展
- 图形
- 硬件
- 中央处理器
- 显卡
- 软件
然后我希望能够拥有看起来像这样的路线
- site.com/catalog/computers/software/graphics
这本身并不难,可以通过看起来像这样的路线捕获
- 目录/{*类别}
但是我希望能够在该 URL 的末尾添加产品信息,就像这样
- site.com/catalog/computers/software/graphics/title=Photoshop
这意味着我会要求像以下示例一样定义的路线
- site.com/{*categories}/title={name}
- site.com/{*categories}
然而,这些路线中的第一个是无效的,因为在诸如 {*categories} 之类的贪婪参数之后不会出现其他任何东西,所以我有点卡住了。我一直在考虑实现正则表达式路由,或者可能使用 IRouteContraint 来解决这个问题,但我想不出一个体面的解决方案,让我也可以使用Html.ActionLink(...)方法生成出站 URL填写了 {*categories} 和 {name}
非常感谢任何建议!
你们中的一些人可能昨天看到了我提出的类似问题,但我已将其删除,因为此后我对其进行了更多思考,并且旧问题包含对我的问题的不完整描述
更新 2008/11/26我在http://thecodejunkie.blogspot.com/2008/11/supporting-complex-route-patterns-with.html发布了解决方案