В моем проекте ASP.NET MVC 3 возникает следующая ошибка:
Было обнаружено несколько типов, соответствующих контроллеру с именем «Home». Это может произойти, если маршрут, обслуживающий этот запрос ('Home / {action} / {id}'), не указывает пространства имен для поиска контроллера, который соответствует запросу. Если это так, зарегистрируйте этот маршрут, вызвав перегрузку метода MapRoute, который принимает параметр namespaces.
Запрос на «Домашнюю страницу» обнаружил следующие подходящие контроллеры: 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
);
}
Затем у меня есть область под названием Company, с 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 в папке контроллеров по умолчанию, а затем по одному в КАЖДОЙ области? Если да, нужно ли мне вносить (при условии, что я это сделаю) изменения в мой файл конфигурации, чтобы эта работа работала?
Любая помощь приветствуется!