Я запускаю следующую ошибку с моим проектом ASP.NET MVC 3:
Было найдено несколько типов, которые соответствуют контроллер с именем "Главная". Это может произойдет, если маршрут, обслуживающий этот request ('Home/{action}/{id}') делает не указывать пространства имен для поиска контроллер, соответствующий запросу. Если это так, зарегистрируйте это маршрута, вызвав перегрузку Метод "MapRoute", который принимает 'namespaces'.
Запрос "Home" нашел после согласования контроллеров: MyCompany.MyProject.WebMvc.Controllers.HomeController MyCompany.MyProject.WebMvc.Areas.Company.Controllers.HomeController
У меня есть 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
);
}
Затем у меня есть область под названием "Компания" с HomeController в папке контроллера по умолчанию для этой области с именем класса MyCompany.MyProject.WebMvc.Areas.Company.Controllers.HomeController.
Метод RegisterArea в файле CompanyAreaRegistration выглядит так:
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Company_default",
"Company/{controller}/{action}/{id}",
new { area = "Company", action = "Index", id = UrlParameter.Optional }
);
}
Это все приводит к ошибке, которую я выделил в начале этого сообщения. Я изо всех сил пытаюсь объединить решение из разных других сообщений, НЕТ УДАЧИ.
Возможно ли иметь HomeController в папке контроллеров по умолчанию, а затем в области EACH? Если это так, мне нужно сделать (при условии, что сделаю) изменения в файле конфигурации, чтобы сделать эту работу?
Любая помощь будет очень признательна!