问题重现:
当项目下: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
" Home " , // Route name
" {controller}/{action}/{id}/ " , // URL with parameters
new { controller = " Home " , action = " Index " , id = UrlParameter.Optional },
new string [] { " Web.Controllers " }
);