2013-05-08 50 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