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