Я пытаюсь разделить мой проект MVC на несколько областей. Итак, у меня есть 3 области 1) crm 2) услуги 3) Web. Я хочу, чтобы PublicWeb был моим дефолтом. это означает, что к нему следует обращаться, например, www.mysitename.com/mycontroller/myaction (без имени области между ними) и других двух, к которым нужно получить доступ с именем области (www.mysitename.com/crm/mycontroller/myaction). Какую конфигурацию маршрутизации/области я должен иметь? Я пробовал AreaRegistration.RegisterAllAreas();
, и он работает только для моего по умолчанию (в Интернете). Когда я получаю доступ к другим 2, он сбросил ошибку 404.ASP.NET MVC Области маршрутизации не работают с маршрутом по умолчанию
Я попытался indidually зарегистрироваться как ниже одного
var area2reg = new crmAreaRegistration();
var area2context = new AreaRegistrationContext(area2reg.AreaName, RouteTable.Routes);
area2reg.RegisterArea(area2context);
var area1reg = new webAreaRegistration();
var area1context = new AreaRegistrationContext(area1reg.AreaName, RouteTable.Routes);
area1reg.RegisterArea(area1context);
Тогда мои publicweb работ. Но когда я обращаюсь к своему форуму, он перебрасывал эту ошибку,
Было найдено несколько типов, соответствующих контроллеру с именем 'home'. Это может произойти, если маршрут, обслуживающий этот запрос ('crm/{controller}/{action}/{id}'), не определяет пространства имен для поиска контроллера, который соответствует запросу. Если это так, зарегистрируйте этот маршрут, вызвав перегрузку метода «MapRoute», который принимает параметр «namespaces».
Моя RegisterArea функция web
это
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"web_default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
и один для crm
является это
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"crm_default",
"crm/{controller}/{action}/{id}",
new { controller = "home", action = "Index", id = UrlParameter.Optional }
);
}
}
Как я справиться с этим?
Да, я много пытался использовать маршрутизацию по умолчанию и область вместе. Так что это должно быть правильным решением. –