2009-08-14 46 views
2

我有一個ASP.NET MVC網站和一個名爲'Admin'的區域項目。即使在不同的區域,控制器名稱也必須是唯一的嗎?

到目前爲止,路由工作正常,但似乎我不能在每個項目中有2個同名的控制器。

我想下面的網址將兩者很好地工作:

http://website.com/Home/Index

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

但事實證明,訪問既可以當我得到以下錯誤:

控制器名稱'Home'是以下類型之間曖昧:

MyProject.Website.Controllers.HomeController

MyProject.Admin.Controllers。 HomeController

這是正常的,還是有什麼問題,我的設置?


順便說一句,這是我的路由代碼:

主要項目:

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 2009-09-13 22:40:37

相關問題