2013-05-08 68 views
4

我想路由以下URL;如何从URL中获取ID作为参数

/anything/anything-v43243-anything 

如何将此路由到特定的控制器,并将该id作为参数进行操作? 文字“任何东西”必须是至少有几个字符的文字。该ID需要以字母“v”开头。 我想这创造友好的URL的

回答

1

你可以写一个自定义的路线和适当的约束条件不同的部分:

routes.MapRoute(
    "myroute", 
    "anything/{x}-{id}-{y}", 
    new { controller = "SomeController", action = "SomeAction" }, 
    new { x = "[a-z]+", y = "[a-z]+", id = @"\d+" } 
); 
+1

我只需要ID,其余的并不重要;仅用于友好的URL目的。并且id需要以字母“v”开始 – Bernardmoes 2013-05-08 09:24:31

+0

即使不重要,您也需要将其包含在路由模式中,如我的答案中所示:'“anything/{x} - {id} - {y}” '。至于id必须以字母“v”开始,只需调整id约束的正则表达式即可。在我的例子中,它只接受整数值,但如果你想要别的东西,确保你写了相应的正则表达式。 – 2013-05-08 09:41:05