В приложении ASP.NET MVC 3 с областями (см. Схему ниже). Каталог «Контроллеры» из корня удален.
Когда я делаю это:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
Я получаю эту ошибку:
Обнаружено несколько типов, соответствующих контроллеру с именем «Home».
Это может произойти, если маршрут, обслуживающий этот запрос ('{controller} / {action} / {id}')
не указывает пространства имен для поиска контроллера, соответствующего запросу.
Если это так, зарегистрируйте этот маршрут, вызвав перегрузку MapRoute.
метод, который принимает параметр namespaces.
Запрос на 'Home' нашел следующие подходящие контроллеры:
MyProject.Areas.Administration.Controllers.HomeController
MyProject.Areas.BackEnd.Controllers.HomeController
MyProject.Areas.FrontEnd.Controllers.HomeController
Когда я делаю это:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional }, // Parameter defaults
new string[] { "MyProject.Areas.Administration.Controllers" }
);
Я получаю эту ошибку:
The view 'Index' or its master was not found or no view engine supports the searched locations. The following locations were searched:
~/Views/Home/Index.aspx
~/Views/Home/Index.ascx
~/Views/Shared/Index.aspx
~/Views/Shared/Index.ascx
~/Views/Home/Index.cshtml
~/Views/Home/Index.vbhtml
~/Views/Shared/Index.cshtml
~/Views/Shared/Index.vbhtml
---- Areas
|
|---- Administration
| |--- Controllers
| | |---- HomeController
| |--- Views
| |--- Index
|---- FrontEnd
| |--- Controllers
| | |---- HomeController
| |--- Views
| |--- Index
|---- BackEnd
|--- Controllers
| |---- HomeController
|--- Views
|--- Index
Update1
Чтобы запустить определенный контроллер в областях, я попробовал это:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
new[] { "MyProject.Areas.BackEnd.Controllers" }
);
}