我正在尝试编写符合以下网址格式的路线:
/类别1 /类别2 / S /
其中类别数量未知,因此可能有1个类别或者可能有10个(1..N)。
我不能使用catch,因为类别不在URL的末尾。
我实际上是在这里路由到一个网页表单(使用Phil Haack的例子http://haacked.com/archive/2008/03/11/using-routing-with-webforms.aspx),但实际上这不是重点。
有什么想法吗?
答案 0 :(得分:1)
说实话,我发现这里的答案更有用:Using the greedy route parameter in the middle of a route definition
与问题相关联的博文非常有用:http://www.thecodejunkie.com/2008/11/supporting-complex-route-patterns-with.html
答案 1 :(得分:0)
我认为这是不可能的,但你可以尝试使用这条路线解决它:
{类别} / S
然后自己使用'/'字符拆分类别。
我创建了一个网站,我通过注册3条路线将其修改为1-3个类别,但我不得不解决很多问题,之后并不满意。
编辑:使用S / {* categories}将捕获类别。您只能在URL的末尾使用它。
答案 2 :(得分:0)
这是一个长时间丢失的镜头,但我似乎完全符合你的需要。我写了一个GreedyRoute
类,允许在网址的任何地方贪婪段(在开头,中间或末尾 - 已经支持)。
您可以阅读所有详细信息on my blog以及获取此特定课程的代码。
主要的是它支持这些模式中的任何一种:
{segment}/{segment}/{*segment}
{segment}/{*segment}/{segment}
{*segment}/{segment}/{segment}
它不支持多个贪婪的段(当然也可以,但在这种情况下应该遵守一些限制),但我想这是一个罕见的例子使用。