我的ASP.NET MVC 3项目遇到以下错误:
找到了多个与名为“ Home”的控制器匹配的类型。如果为该请求提供服务的路由(“ Home / {action} / {id}”)未指定名称空间来搜索与该请求匹配的控制器,则会发生这种情况。如果是这种情况,请通过调用带有“名称空间”参数的“ MapRoute”方法的重载来注册此路由。
对“家”的请求已找到以下匹配的控制器:MyCompany.MyProject.WebMvc.Controllers.HomeController MyCompany.MyProject.WebMvc.Areas.Company.Controllers.HomeController
我的默认控制器文件夹中有一个HomeController,其类名为MyCompany.MyProject.WebMvc.Controllers.HomeController。
我的global.asax中的RegisterRoutes方法如下所示:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
然后,我有一个名为Company的区域,该区域的默认控制器文件夹中有一个HomeController,其类名为MyCompany.MyProject.WebMvc.Areas.Company.Controllers.HomeController。
CompanyAreaRegistration文件中的RegisterArea方法如下所示:
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Company_default",
"Company/{controller}/{action}/{id}",
new { area = "Company", action = "Index", id = UrlParameter.Optional }
);
}
所有这些都导致了我在本文开头强调的错误。我正在努力从其他运筹帷 to拼凑出解决方案,但没有运气。
是否可以在默认的controllers文件夹中放置一个HomeController,然后在每个区域中放置一个HomeController?如果是这样,我是否需要对配置文件进行更改(假设进行了更改)以使此工作有效?
任何帮助将非常感激!