Asp.net mvc 配置处理/控制器/操作/0000-00000-0000的路由

Asp.net mvc 配置处理/控制器/操作/0000-00000-0000的路由,asp.net-mvc,Asp.net Mvc,如何配置路由以允许以下语法: /ControllerName/ActionName/0000-00000-0000-0000 routes.MapRoute( "MoveToTab", "{controller}/{action}/{value}", new { controller = "ControllerName", action = "ActionName", value = System.Guid.Empty } ); 最后一部分在哪里 p

如何配置路由以允许以下语法:

/ControllerName/ActionName/0000-00000-0000-0000 
routes.MapRoute(
    "MoveToTab",
    "{controller}/{action}/{value}",
    new { controller = "ControllerName", action = "ActionName",
        value = System.Guid.Empty }
);
最后一部分在哪里

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})$" }
);

这里有一个自定义路由定义。最后一个参数是正则表达式形式的路由约束,它需要
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})$" }
);

您需要添加一些新的路由。您将需要执行以下操作:

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

在这里,
ControllerName
ActionName
将是这些部分的默认值。

您需要添加一些新路由。您将需要执行以下操作:

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

这里的
ControllerName
ActionName
将是这些部分的默认值。

查看这篇有解决方案的文章:查看这篇有解决方案的文章:这里是我获取Guid的地方regex:我们需要自定义路由来获取Guid作为参数吗?我不这么认为。你能看看我的答案吗。这里是我得到Guid的地方正则表达式:我们需要一个自定义路由来获取Guid作为参数吗?我不这么认为。你能看看我的答案吗。