Переименование пространства имен ASP.NET MVC
Я переименовал свой проект из MyProjectName в MyNewProjectName. Я сделал полный поиск/замену решения и изменил тестовый проект. В Default.aspx.cs я получаю InvalidOpterationException с
"Имя контроллера" Домой "неоднозначно между следующими типами:
MyNewProjectName.Controllers.HomeController
MyProjectName.Controllers.HomeController ".
Как это исправить? Благодаря
Ответы
Ответ 1
Вы пытались перестроить (щелкните правой кнопкой мыши по проекту и выберите "Rebuild" )? Также проверьте контейнер, чтобы убедиться, что там есть только сборка с новым именем. Кроме того, дважды проверьте свойства проекта, чтобы проверить, выводится ли имя сборки. Если вы не знаете, какое имя выведенной сборки, удалите все DLL из bin и перестройте.
Ответ 2
Вам нужно проверить папку /bin в вашем веб-проекте MVC и либо удалить все внутри, либо сделать новую сборку, либо удалить старую DLL (MyProjectName.dll).
В среде исполнения ASP.Net MVC используется отражение, чтобы определить, какой контроллер должен быть передан на основе информации о маршрутизации, и он находит два контроллера, которые соответствуют критериям (имеют одно и то же имя), и каждый из них находится в другом сборка. Вот почему вы получаете исключение.
Выполнение Чистота, похоже, не очищает папку bin. Поэтому вам нужно удалить файл вручную.
Ответ 3
Как и я, у меня была ссылка в web.config папки "Вид", как только она была изменена, все сработало нормально!
Ответ 4
Дважды щелкните или щелкните правой кнопкой мыши на MyProject и откройте. В настройках приложения измените имя сборки и корневое пространство имен в соответствии с вашим именем переименованного проекта.
Ответ 5
Щелкните правой кнопкой мыши проект, выберите "Открыть папку в проводнике Windows".
Удалите объекты OLDPROJECTNAME в /bin и/obj