Aspnet贪心路由参数

时间:2018-05-21 12:04:42

标签: asp.net-mvc asp.net-core asp.net-core-mvc asp.net-routing

我已经映射了路线:

routes.MapRoute("test", "/{p1:int}-{p2}", new { controller = "test", action = "int" });

这样的路由应该匹配int-string,如/1-stuff,并且它适用于这种情况,但它不适用于/1-stuff-stuff。我想这是因为路由匹配,然后由于int约束而拒绝params。

如果我删除约束p1等于1-stuffp2等于stuff。有没有办法以正确的方式应用约束或将p2标记为"贪婪" (但不是全能),所以p1等于1p2等于stuff-stuff

这对于制作人性化的网址非常重要,其中ids在前面,所有东西都是烤肉串而没有其他字符。

Catch-all对我不起作用我需要将p2绑定到action参数。正则表达式没有帮助。

1 个答案:

答案 0 :(得分:0)

为什么不尝试类似...

split("-")

...然后在动作中解析p1

根据您的要求,正则表达式可能需要进行一些调整,但是在这种情况下,p1将为“ 1-stuff-stuff”,那么您可以{{1}} p1来获取值

相关问题