如何配置路線,所以其允許的語法是這樣的:配置路由處理/控制/動作/ 0000-00000-0000-0000
/ControllerName/ActionName/0000-00000-0000-0000
其中最後一部分是的Guid?
public ActionResult ActionName(Guid value){}
如何配置路線,所以其允許的語法是這樣的:配置路由處理/控制/動作/ 0000-00000-0000-0000
/ControllerName/ActionName/0000-00000-0000-0000
其中最後一部分是的Guid?
public ActionResult ActionName(Guid value){}
這是自定義路由定義。最後一個參數是正則表達式形式的路由約束,它需要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})$" }
);
這裏是我得到了Guid正則表達式:http:// madskristensen.net/post/validate-a-guid-in-c – Peter
我們是否需要將GUID作爲參數的自定義路由?我不這麼認爲。你能查看我的答案嗎? – ramiramilu
您需要添加一些新的路由。你會想要做這樣的事情:
routes.MapRoute(
"MoveToTab",
"{controller}/{action}/{value}",
new { controller = "ControllerName", action = "ActionName",
value = System.Guid.Empty }
);
這裏ControllerName
和ActionName
將是這些部分的默認設置。
看到這篇文章有解決方案:http:/ 0hlsson.se/2012/06/18/asp-net-mvc3-routing-with-guid/ – Shiva