System.InvalidOperationException: найдено несколько типов, соответствующих контроллеру с именем «Home». Это может произойти, если маршрут, который обслуживает этот запрос ('{*pathInfo}'), не указывает пространства имен для поиска контроллера, соответствующего запросу. Если это так, зарегистрируйте этот маршрут, вызвав перегрузку метода «MapRoute», который принимает параметр «пространства имен».
Запрос «Дом» обнаружил следующие соответствующие контроллеры: SitecoreMVC.Areas.Site1.Controllers.HomeController SitecoreMVC.Areas.Site2.Controllers.HomeController
Выше приведена ошибка, которую я также получаю при использовании MVCAreas. Я расширил шаблон рендеринга контроллера и добавил еще два поля: Area и Namespace, а во время инициализации маршрута я выполняю AreaRegistration.RegisterAllAreas();
Я также расширил GetRendererProcessor с помощью своего собственного процессора, и я получаю сообщение об ошибке в controllerrunner в методе выполнения, поскольку компилятор не может разрешить правильный контроллер, в приведенном ниже пространстве имен и области кода передается, но все равно выдает ошибку.
AreaControllerRenderer.cs
public class AreaControllerRenderer : Renderer
{
public string Action { get; set; }
public string Controller { get; set; }
public string Area { get; set; }
public string Namespaces { get; set; }
public override string CacheKey
{
get
{
return "areacontroller::" + Controller + "#" + Action + "#" + Area + "#" + Namespaces;
}
}
public override void Render(System.IO.TextWriter writer)
{
var controllerRunner = new AreaControllerRunner(Controller, Action, Area, Namespaces);
string value = controllerRunner.Execute();
if (string.IsNullOrEmpty(value))
{
return;
}
writer.Write(value);
}
public override string ToString()
{
return "Controller: {0}. Action: {1}. Area {2}. Namespaces {3}".FormatWith(new object[]
{
Controller,
Action,
Area,
Namespaces
});
}
}
Пожалуйста помоги!!
Мне удалось решить эту проблему, используя полное имя контроллера с именем сборки, как показано ниже -SitecoreMVC.Areas.Site1.Controllers.HomeController, SitecoreMVC