最佳答案
我的 ASP.NET MVC 3项目遇到了以下错误:
找到了多种匹配的类型 一个名为“ Home”的控制器。这个可以 如果提供此服务的路线 Request (‘ Home/{ action }/{ id }’)执行 不指定命名空间来搜索 匹配请求的控制器。 如果是这样的话,注册这个 通过调用 方法,该方法接受一个 “名称空间”参数。
对「主页」的要求已找到 下列匹配控制器: 控制器 地区。公司。控制器。家庭控制器
在我的默认控制器文件夹中有一个 HomeController,类名为 MyCompany.MyProject.WebMvc.Controllers. HomeController。
我的 RegisterRoutes 方法在 global.asax 中看起来像:
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.地区。公司。控制器。家庭控制器。
CompanyArea 注册文件中的 RegisterArea 方法如下:
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Company_default",
"Company/{controller}/{action}/{id}",
new { area = "Company", action = "Index", id = UrlParameter.Optional }
);
}
这些都导致了我在本文开头强调的错误。我正在努力拼凑一个解决方案从各种其他职位,与 运气不好。
是否有可能在默认控制器文件夹中有一个 HomeController,然后在每个区域中有一个 HomeController?如果是这样,我是否需要(假设我需要)对配置文件进行更改以使其正常工作?
任何帮助都将不胜感激!