我在控制器中有一个动作,定义了以下路线。
[Route(@"mycontroller/myaction/{itemId:int}-{itemSlug}"]
public ActionResult MyAction(int itemId, string itemSlug) {
...
}
如果itemSlug
本身不包含破折号,它可以使用适当的参数运行并执行操作,但如果确实如此,则路径不会被命中。我不赞成它,因为在我看来,正确的行为是留下其余的破折号并将其作为itemSlug
的一部分处理,如果我将第一个破折号之前的部分约束为整数。
如何克服这个问题?我不想使用其他字符来分隔itemId
和itemSlug
。
答案 0 :(得分:0)
这可能有所帮助,answer taken from here
虽然您可以在配置文件中尝试这些设置
<system.web>
<httpRuntime requestPathInvalidCharacters="" requestValidationMode="2.0" />
<pages validateRequest="false" />
</system.web>
我会避免使用像&#39;&amp;&#39;这样的字符。在URL路径中用下划线替换它们。