ASP.NET MVC Controller与Areas下面的Controller同名的解决办法

问题重现:

   当项目下:Controller/HomeController.cs时,

  人在创建一个域Test,之后在建一个同名的HomeController: Areas/Test/Controller/HomeController.cs

运行报错:

Multiple types were found that match the controller named 'Home'. This can happen if the route that services this request ('{controller}/{action}/{id}/') does not specify namespaces to search for a controller that matches the request. If this is the case, register this route by calling an overload of the 'MapRoute' method that takes a 'namespaces' parameter.

The request for 'Home' has found the following matching controllers:
Web.Areas.Test.Controllers.HomeController
Web.Controllers.HomeController 

 解决办法:

  /Areas/Test/TestAreaRegistration.cs

代码

context.MapRoute(
                
"Test_default",
                
"Test/{controller}/{action}/{id}/",
                
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
                
new string[] { "Web.Areas.Test.Controllers"}
            );

/Global.asax

 routes.MapRoute(
             
"Home"// Route name
             "{controller}/{action}/{id}/"// URL with parameters
             new { controller = "Home", action = "Index", id = UrlParameter.Optional },
                
new string[] { "Web.Controllers"}
          );


 


 

 

 

posted @ 2010-05-17 12:32  Daniel Chow  阅读(1745)  评论(1编辑  收藏  举报