Uruchamiam następujący błąd w moim projekcie ASP.NET MVC 3:
Znaleziono wiele typów pasujących do kontrolera o nazwie „Home”. Może się tak zdarzyć, jeśli trasa obsługująca to żądanie („Home / {action} / {id}”) nie określa przestrzeni nazw do wyszukiwania kontrolera, który pasuje do żądania. W takim przypadku zarejestruj tę trasę, wywołując przeciążenie metody „MapRoute”, która przyjmuje parametr „namespaces”.
Żądanie „Strona główna” znalazło następujące pasujące kontrolery: MyCompany.MyProject.WebMvc.Controllers.HomeController MyCompany.MyProject.WebMvc.Areas.Company.Controllers.HomeController
Mam HomeController w moim domyślnym folderze kontrolera z nazwą klasy MyCompany.MyProject.WebMvc.Controllers.HomeController.
Moja metoda RegisterRoutes w moim global.asax wygląda następująco:
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
);
}
Mam wtedy obszar o nazwie Firma z HomeController w domyślnym folderze kontrolera dla tego obszaru, z nazwą klasy MyCompany.MyProject.WebMvc.Areas.Company.Controllers.HomeController.
Metoda RegisterArea w pliku CompanyAreaRegistration wygląda następująco:
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Company_default",
"Company/{controller}/{action}/{id}",
new { area = "Company", action = "Index", id = UrlParameter.Optional }
);
}
To wszystko prowadzi do błędu, który podkreśliłem na początku tego postu. Próbuję złożyć rozwiązanie z różnych innych postów, ale BEZ SZCZĘŚCIA .
Czy można mieć HomeController w domyślnym folderze kontrolerów, a następnie jeden w KAŻDYM obszarze? Jeśli tak, czy muszę wprowadzić (zakładając, że to zrobię) zmiany w moim pliku konfiguracyjnym, aby to zadziałało?
Każda pomoc byłaby bardzo mile widziana!