0

異なるサブフォルダに同じ名前の2つのコントローラがあります私のコントローラは次のようになります

  • コントローラー
    • api
      • UserController
    • ヘルプ
      • UserController

ユーザーが要求したときに最初のコントローラーにアクセスしたいhttp://mysite/api/User/Index

ユーザーが要求したときに2番目のコントローラーにアクセスしますhttp://mysite/help/User/Index

Global.asaxでルーティングを構成する方法と、ビューフォルダーはどのように表示されますか?

それはどのように見えるでしょうか?

  • ビュー
    • ユーザー
      • api
        • 索引
      • ヘルプ
        • 索引

よろしくお願いします。

4

1 に答える 1

1

名前空間制約を使用できます。

routes.MapRoute(
    "help",
    "help/{controller}/{action}",
    new { controller = "User", action = "Index" },
    new[] { "MvcApplication1.Controllers.help" }
);

routes.MapRoute(
    "api",
    "api/{controller}/{action}",
    new { controller = "User", action = "Index" },
    new[] { "MvcApplication1.Controllers.api" }
);

ビュー用のサブフォルダーがある限り、これはそのままではサポートされていません。これを機能させるには、カスタムビューエンジンを作成する必要があります。

ちなみにエリアの利用を検討しましたか?彼らはあなたのシナリオにより適しているようです。したがって、2つの領域を定義します。helpapi、両方でUserControllerを定義します。

于 2012-10-02T16:07:43.173 に答える