1

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

我有以下死记硬背的地图:

        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”

此致!

4

1 回答 1

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将不匹配。

于 2013-07-14T18:47:20.587 回答