配置路由处理/ Controller / Action / 0000-00000-0000-0000

时间:2014-01-27 18:27:33

标签: asp.net-mvc

如何配置路由,以便它允许这样的语法:

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

最后一部分是Guid?

public ActionResult ActionName(Guid value){}

2 个答案:

答案 0 :(得分: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})$" }
);

答案 1 :(得分:0)

您需要添加一些新路由。你会想做这样的事情:

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

此处ControllerNameActionName将是这些部分的默认值。