2014-01-27 73 views
1

如何配置路線,所以其允許的語法是這樣的:配置路由處理/控制/動作/ 0000-00000-0000-0000

/ControllerName/ActionName/0000-00000-0000-0000 

其中最後一部分是的Guid?

public ActionResult ActionName(Guid value){} 
+0

看到這篇文章有解決方案:http:/ 0hlsson.se/2012/06/18/asp-net-mvc3-routing-with-guid/ – Shiva

回答

4

這是自定義路由定義。最後一個參數是正則表達式形式的路由約束,它需要value與Guid格式相匹配。

routes.MapRoute(
    "YourRouteName", 
    "{controller}/{action}/{value}", 
    new { controller = "ControllerName", action = "ActionName" }, 
    new { value = @"^(\{{0,1}([0-9a-fA-F]){8}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){12}\}{0,1})$" } 
); 
+0

這裏是我得到了Guid正則表達式:http:// madskristensen.net/post/validate-a-guid-in-c – Peter

+0

我們是否需要將GUID作爲參數的自定義路由?我不這麼認爲。你能查看我的答案嗎? – ramiramilu

0

您需要添加一些新的路由。你會想要做這樣的事情:

routes.MapRoute(
    "MoveToTab", 
    "{controller}/{action}/{value}", 
    new { controller = "ControllerName", action = "ActionName", 
     value = System.Guid.Empty } 
); 

這裏ControllerNameActionName將是這些部分的默認設置。

相關問題