2



Asp.NET MVC4 Webプロジェクトには多くのコントローラーがあり、それらを「コントローラー」フォルダーの下のサブディレクトリに配置したいと思います。一部のコントローラーは、主要なジョブのために同じ名前になりますが、異なるサブディレクトリの下に配置されます。つまり、異なる名前空間になります。それらのコントローラーのURLルーティングを実行したいと思います。同じ名前のコントローラーが存在する名前空間をルーティングに考慮させるにはどうすればよいですか?Global.asaxファイルでそれを行う方法をいくつかのコードで示してもらえますか?
どうもありがとう。

4

2 に答える 2

6

複数のMapRouteが必要です-少なくとも名前空間ごとに1つ。

 // match all controllers in first namespace
 routes.MapRoute(
    name: "Namespace1Routes",
    url: "path1/{controller}/{action}/{id}",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
    namespaces: new[] { "My.Namespace1" }
 );

 // match all controllers in second and third namespaces
 routes.MapRoute(
    name: "Namespace2Routes",
    url: "path2/{controller}/{action}/{id}",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
    namespaces: new[] { "My.Namespace2", "My.Namespace3" }
 );
于 2013-03-13T13:16:14.187 に答える
1
routes.MapRoute(
"Home",
"Index/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
new string[] { "Project.Controllers" }

);

Project.Controllers-is名前空間

于 2013-03-13T13:11:17.043 に答える