Я пытался внедрить демо Phil's Areas в мой проект http://haacked.com/archive/2008/11/04/areas-in-aspnetmvc.aspx.
Я добавил структуру Areas / Blog в свой существующий проект MVC, и я получил следующую ошибку в моем проекте.
Имя контроллера «Home» неоднозначно для следующих типов:
WebMVC.Controllers.HomeController
WebMVC.Areas.Blogs.Controllers.HomeController
так выглядит мой global.asax.
public static void RegisterRoutes (маршруты RouteCollection)
{
routes.IgnoreRoute ( "{ресурс} .axd / {* PathInfo}");
routes.MapAreas("{controller}/{action}/{id}",
"WebMVC.Areas.Blogs",
new[] { "Blogs", "Forums" });
routes.MapRootArea("{controller}/{action}/{id}",
"WebMVC",
new { controller = "Home", action = "Index", id = "" });
//routes.MapRoute(
// "Default", // Route name
// "{controller}/{action}/{id}",// URL with parameters
// new { controller = "Home", action = "Index", id = "" }
// // Parameter defaults
//);
}
protected void Application_Start()
{
String assemblyName = Assembly.GetExecutingAssembly().CodeBase;
String path = new Uri(assemblyName).LocalPath;
Directory.SetCurrentDirectory(Path.GetDirectoryName(path));
ViewEngines.Engines.Clear();
ViewEngines.Engines.Add(new AreaViewEngine());
RegisterRoutes(RouteTable.Routes);
// RouteDebug.RouteDebugger.RewriteRoutesForTesting(RouteTable.Routes);
}
Если я удаляю / Areas / Blogs из маршрутов. MapAreas, он смотрит на Индекс корня.