ASP.NET MVC 4映射到特定控制器的路由不起作用

时间:2013-07-14 18:02:37

标签: asp.net-mvc url-routing

我的特定控制器的路线图有问题。我为此找了一些其他的答案,但我没有帮助我很多。

关于死记硬背图,我有:

        routes.MapRoute(
              name: "Default",
              url: "{culture}/{controller}/{action}/{id}",
              defaults: new { culture = LanguageHelper.GetDefaultCultureToken(), controller = "Forum", action = "Overview", id = UrlParameter.Optional },
              namespaces: new string[] { "MyForum.Controllers" }
        );

        routes.MapRoute(
          name: "AccRoute",
          url: "Account/{action}/{id}",
          defaults: new { controller = "Account", action = "Overview", id = UrlParameter.Optional },
          namespaces: new string[] { "MyForum.Controllers" }
        );

我的问题是,第二张路线图不起作用。 我找不到具有以下链接的路线:“〜/ account / confirm / iHUeMMOL9XA2vqqV6XGJ-w2”

祝你好运!

1 个答案:

答案 0 :(得分:3)

该URL与第一条路线匹配,以避免您需要使用约束,例如:

routes.MapRoute(
   name: "Default",
   url: "{culture}/{controller}/{action}/{id}",
   defaults: new { culture = LanguageHelper.GetDefaultCultureToken(), controller = "Forum", action = "Overview", id = UrlParameter.Optional },
   constraints: new { culture = @"[a-z]{2}-[a-z]{2}" },
   namespaces: new string[] { "MyForum.Controllers" });

不确定我的正则表达式适合您,但您明白了。这样,细分account将不匹配。