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

ExpandedBlockStart.gif 代码

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 " }
          );


 


 

 

 

转载于:https://www.cnblogs.com/DanielChow/archive/2010/05/17/1737228.html

你可能感兴趣的:(ASP.NET MVC Controller与Areas下面的Controller同名的解决办法)