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

私の問題は、2 番目のルート マップが機能しないことです。次のリンクでルートが見つかりません: "~/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 に答える