【发布时间】:2013-05-08 09:15:03
【问题描述】:
我要路由以下网址;
/anything/anything-v43243-anything
如何将其路由到特定的控制器和以该 id 作为参数的操作? 文本“anything”必须是至少包含几个字符的文本。 id 需要以字母“v”开头。 我希望这可以创建友好的 URL
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-routing url-routing
我要路由以下网址;
/anything/anything-v43243-anything
如何将其路由到特定的控制器和以该 id 作为参数的操作? 文本“anything”必须是至少包含几个字符的文本。 id 需要以字母“v”开头。 我希望这可以创建友好的 URL
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-routing url-routing
您可以为此编写自定义路线并为不同部分编写适当的约束:
routes.MapRoute(
"myroute",
"anything/{x}-{id}-{y}",
new { controller = "SomeController", action = "SomeAction" },
new { x = "[a-z]+", y = "[a-z]+", id = @"\d+" }
);
【讨论】:
"anything/{x}-{id}-{y}"。至于 id 必须以字母 v 开头,只需为 id 约束调整正则表达式即可。在我的示例中,它只接受整数值,但如果您需要其他内容,请确保编写相应的正则表达式。