将多个路由映射到asp.net mvc中的1个操作

时间:2011-09-20 18:43:12

标签: asp.net-mvc asp.net-mvc-3 routing

我想将多个网址映射到1个操作,但我只想要1个路由。

例如。

routes.MapRoute(
    "SingleUser_Long",
    "Users/{username}",
    new { controller = "Users", action = "SingleUser" });

routes.MapRoute(
    "Users",
    "{username}",
    new { controller = "Users", action = "SingleUser" });

有没有办法让这些2合1?当我必须添加更多内容并且我保留复制/粘贴重复项时,它会变得乏味乏味,只是在网址前面添加“用户”。

1 个答案:

答案 0 :(得分:1)

    routes.MapRoute("SingleUser", 
      "{controller}/{username}",
       new { controller = "Users", action = "SingleUser", 
                 controller = UrlParameter.Optional },
       new { controller = @"/(^\s*)|\bUsers\b"}

使用约束将“{controller}”限制为空或仅限“用户”。(不确定正则表达式是否正确)