2009-08-14 10 views
2

私はASP.NET MVCのウェブサイトと「管理者」と呼ばれるエリアプロジェクトを持っています。別の領域にある場合でもコントローラ名は固有でなければなりませんか?

これまでのルーティングが、私が各プロジェクトに同じ名前の2つのコントローラを持つことができないようだということを除いて、正常に動作します。

私は、次のURLが正常に動作します両方考えた:

http://website.com/Home/Index

http://website.com/Admin/Home/Index

しかし、それはどちらかアクセスしたときに、私は次のエラーを取得することが判明:

コントローラー名 'Home'

MyProject.Website.Controllers.HomeController

MyProject.Admin.Controllers:次のタイプの間であいまいです。ホームコントローラー

これは正常ですか、設定に問題がありますか?


ところで、ここに私のルーティングコードだ:

メインプロジェクト:

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

    Admin.Routes.RegisterRoutes(routes); 

    routes.MapAreaRoute(
     "Main", 
     "default_route", 
     "{controller}/{action}/{URLName}", 
     new { controller = "Home", action = "Index", URLName = "" }, 
     new string[] { "MyProject.Website" } 
    ); 
} 

エリアプロジェクト:

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.MapAreaRoute(
     "Admin", 
     "Admin_Default", 
     "Admin/{controller}/{action}", 
     new { controller = "Home", action = "Index" }, 
     new string[] { "MyProject.Admin" } 
    ); 
} 

答えて

5

this postを読んだ後に問題を発見しました。

プロジェクトネームスペースだけでなく、第5引数に 'Controllers'ネームスペースを指定する必要があります。

など。

new string[] { "MyProject.Admin.Controllers" } 
+0

は本当に便利だったこと、ありがとうございます。名前空間が追加された後もうまく機能します。 – jesperlind

関連する問題