Было найдено несколько типов, которые соответствуют контроллеру с именем 'Home' - PullRequest
3 голосов
/ 25 октября 2010

Я только начал использовать dotnetopenauth для моей регистрации пользователя. Это здорово, и работает отлично.

Проблема в том, что я получаю сообщение об ошибке при попытке перейти в / Home /, в котором говорится:

Обнаружено несколько типов, соответствующих контроллеру с именем 'Home'. Это может произойти, если маршрут, обслуживающий этот запрос ('{controller} / {action} / {id}'), не указывает пространства имен для поиска контроллера, соответствующего запросу. В этом случае зарегистрируйте этот маршрут, вызвав перегрузку метода MapRoute, который принимает параметр namespaces.

Запрос 'Home' обнаружил следующие подходящие контроллеры: OpenIdRelyingPartyMvc.Controllers.HomeController
YourApp.Controllers.HomeController

Проблема в том, что я не знаю откуда взялся OpenIdRelyingPartyMvc.Controllers.Homecontroller Я не могу найти ЛЮБОЙ экземпляр "OpenIdRelyingPartyMvc" в моем приложении, кроме двух мест, оба из которых находятся в UsersController:

OpenIdRelyingParty openid = new OpenIdRelyingParty();

Я пытался удалить DLL и перестроить приложение - без изменений. Я не могу понять, где будет находиться этот другой контроллер.

Есть идеи?

Ответы [ 3 ]

5 голосов
/ 03 февраля 2012

У меня было такое же сообщение об ошибке после изменения имени и пространства имен по умолчанию для проекта.

Наконец, решение заключалось в том, чтобы вручную удалить все файлы из папки отладки (функция «Чистое решение» VS не помогла в этом случае).

3 голосов
/ 25 октября 2010

Я предполагаю, что вы скопировали код из примеров в свою кодовую базу или ссылаетесь на DLL из проекта DotNetOpenAuth sample . Обратите внимание, OpenIdRelyingPartyMvc является пространством имен примера MVC.

Поэтому я предлагаю сначала удалить все экземпляры библиотеки DotNetOpenAuth, начиная со ссылок на проект.

0 голосов
/ 24 октября 2013

используйте это в файле route.config

routes.MapRoute(
    "Default",
    "{controller}/{action}/{id}",
    new { controller = "Home", action = "Index", id = UrlParameter.Optional },
    new[] { "ProjectName.Controllers" }
);

Примечание: Имя проекта, которое вы дали при создании проекта

...