3

このようなカスタムルートを追加しました

        routes.MapRoute(
          name: "Default",
          url: "{coutry}/{lang}/{controller}/{action}",
          defaults: new { controller = "Home", action = "Index" }
        );

1つのコントローラーからメソッドを呼び出そうとすると、いくつかの問題が発生します。これは、新しいルートを追加する前にうまく機能していました

<a id="someId" class="link-button" href="../Documents/Create"><span>Create</span></a>

今私がそれを達成できる唯一の方法は、次のようなものを使用することですhref="EN/us/Documents/Create"

クライアント側のカスタムルートを維持し、管理者側の道を維持するhref="../Documents/Create">方法はありますか?それは、管理者側でいくつかの機能を開発したためですが、クライアント側のカスタムルートを含める必要があるためです. どうもありがとう。

今、私のルートがあります

 routes.MapRoute(
          name: "Default",
          url: "{controller}/{action}/{id}",
          defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
      );

routes.MapRoute(
            name: "CustomRoute",
            url: "{country}/{lang}/{controller}/{action}",
            defaults: new { controller = "Test", action = "Index" }
        );

しかし、私は /ES/es/Test/Index でのみ CustomRoute にアクセスできます...なぜデフォルト値を取らないのですか?

4

2 に答える 2

1

デフォルトの RouteConfig を新しい構成に置き換えました。この{country}/{lang}/{controller}/{action}形式の URL と一致します。

URLを受け入れたい場合../Documents/Createは、最後にデフォルトの RouteConfig を追加する必要があります。

routes.MapRoute(
  name: "CustomRoute",
  url: "{coutry}/{lang}/{controller}/{action}",
  defaults: new { controller = "Documents", action = "Index" }
);

routes.MapRoute(
  name: "Default",
  url: "{controller}/{action}/{id}",
  defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

<a id="someId" class="link-button" href="../Documents/Create"><span>Create</span></a>また、ハードコーディングする代わりにアンカータグで、href次のように書くことができます。

<a id="someId" class="link-button" href="@Url.Action("Create","Documents")><span>Create</span></a>

于 2013-04-17T03:52:25.487 に答える