После значительного рефакторинга в моем приложении MVC 4, и Razor показывает эту ошибку при отладке Views:
Название «модель» не существует в текущем контексте.
Это оскорбительная строка кода:
@model ICollection<DataSourceByActive>
Я знаю, что использование @model
является правильным.
Почему это происходит? Как я могу это исправить?
asp.net-mvc
asp.net-mvc-4
razor
Келан Круммэ
источник
источник
Ответы:
Я думаю, что вы испортили файл web.config, который находится в папке Views.
Создайте новый проект, ориентированный на ту же платформу .NET, и скопируйте его файл Views / web.config поверх файла в текущем проекте. Это исправит вашу проблему.
Кроме того, как прокомментировал Dudeman3000, если у вас есть области в вашем проекте MVC, у них
Views\web.config
тоже есть файлы.источник
This will fix your problem.
Это не так.Убедитесь, что у вас есть следующее в вашем сайте
Web.config
и в каталоге просмотровWeb.config
вappSettings
разделеДля MVC5 используйте:
(И он существует только в основном
Web.config
файле.)источник
3.0.0.0
. (И он существует только в главном файле Web.config.)2.0.0.0
вместо версии предназначался для версии3.0.0.0
. Изменение, которое решило проблему. Спасибо!Вот что я сделал:
Файл .suo представляет собой скрытый файл в той же папке, что и файл решения .svn, и содержит параметры пользователя Visual Studio.
источник
web.config
файла дляASP.NET Core
приложения, так что это сработало для меня (также добавлены некоторые расширения для улучшения intellisense)..vs
папки помогло.У меня была та же проблема, я создал новый проект и скопировал файлы web.config, как рекомендовано в ответе Гупты, но это не помогло мне. Я проверил ответ Алекса и Лиама, я подумал, что эта строка, должно быть, была скопирована из нового web.config, но похоже, что сам новый проект не имел этой строки (MVC5):
Добавление строки в файл views / web.config решило проблему для меня.
источник
Изменение следующей строки в web.config папки просмотра решило ту же ошибку.
Из
к
источник
System.Web.Mvc
ссылку на сборку, чтобы подтвердить основную версию, которая вам нужна.В моем случае я недавно обновился с MVC 4 до MVC 5, что довольно сильно портит web.config. Эта статья очень помогла.
http://www.asp.net/mvc/overview/releases/how-to-upgrade-an-aspnet-mvc-4-and-web-api-project-to-aspnet-mvc-5-and-web- апи-2
Суть в том, что вам нужно проверить все ссылки на номера версий в файлах web.config и Views / web.config, чтобы убедиться, что они ссылаются на правильные обновленные версии, связанные с MVC 5.
источник
Переход на @Model с @model сделал работу за меня.
@model представляет тип объекта View Model. @Model представляет объект View Model.
источник
Я нашел решение. Если вы хотите обновить версию бритвы или mvc 4 до 5, измените некоторые строки.
Старый код в Views / web.config
Заменено на
sectionGroup
Должно быть, изменить тоже.источник
В моем случае следующий код оказывается полезным. Поместите приведенный ниже код в файл Web.config в папке Views.
После обновления кода обязательно очистите и перестройте решение. Я надеюсь, что это поможет вам!
источник
Ни один из существующих ответов не сработал для меня, но я нашел то, что сработало для меня, сравнив
.csproj
файлы разных проектов. Следующее ручное редактирование.csproj
XML-файла решило проблему Razor-intellisense для меня, возможно, это может помочь кому-то, кто пробовал все остальные ответы безрезультатно. Ключ должен удалить любые экземпляры<Private>False</Private>
в<Reference>
:Я не знаю, как они попали туда или точно, что они делают, может быть, кто-то умнее меня может добавить эту информацию. Я был просто счастлив, наконец, решить эту проблему.
источник
По какой-то причине у моего web.config было 0.0.0.0 в атрибуте oldVersion:
переход на 1.0.0.0 был решением:
источник
Я использовал проект MVC4 с Visual Studio 2019 - и оказалось, что VS 2019 не поддерживает MVC 4 "из коробки". Вы должны установить это.
шаги:
ПРИМЕЧАНИЕ: требуется для закрытия Visual Studio
источник
В моем случае проблема заключалась в том, что после обновления проекта с MVC 4 до MVC 5 я почему-то пропустил изменение версии в Views / web.config:
У него все еще была старая версия 2.0.0.0. После смены версии на 3.0.0.0 все заработало как надо.
Кроме того, из-за этой проблемы Visual Studio 2015 Community Edition начинал загружать процессор (30-40% при простое) каждый раз, когда я открывал файл .cshtml.
источник
У меня была такая же проблема при развертывании в службе приложений Azure
В моем случае это произошло потому, что ~ / Views / Web.config не был включен в проект.
Это работало в IIS Express, но при развертывании на Azure я получил ту же ошибку. Не будучи включенным в файл .csproj, он не был развернут.
Решением было обеспечить включение ~ / Views / Web.config в проект.
Если вы перейдете в обозреватель решений и нажмете значок «Показать все файлы», а затем откройте «Виды», вы увидите там не включенный файл Web.config.
Добавьте это, переиздайте, и Боб - ваш дядя.
источник
Для меня проблема заключалась в конфликтующей версии .NET в одной из библиотек, которые я недавно импортировал. Библиотека, которую я импортировал, была скомпилирована для 4.5.2, и сайт ASP.NET MVC, которую я импортировал, был предназначен для 4.5. После перекомпиляции указанной lib для 4.5 веб-сайт будет компилироваться.
Кроме того, не было никаких ошибок компиляции, но проблема сообщалась как "предупреждение". Поэтому обязательно прочитайте все предупреждения, если они есть.
источник
Чтобы решить эту проблему, я удостоверился, что обновил до последней версии MVC, используя NuGet и Package Manager Console.
Инсталляционный пакет Microsoft.AspNet.Mvc - Версия 5.2.4.
Затем обновлен до последней версии Razor
Инсталляционный пакет Microsoft.AspNet.Razor - Версия 3.2.4
Затем я изменил все файлы web.config, чтобы отразить это изменение. Как вы увидите ниже:
В основном файле web.config убедитесь, что версия webpages: правильная. Вот где его можно найти (игнорируйте другие ключи):
Затем найдите другие версии, перечисленные в сборках, сравните версию сборки с версией библиотеки, указанной в ссылках на ваш проект! Вам может не понадобиться все это.
На этапе исполнения AssemblyBinding также должен показывать «newversion», смотрите, где он читает NewVersion 5.2.4.0? Но также проверьте все другие версии.
Затем в разделе Views Web.Config убедитесь, что Razor является правильной версией:
И, наконец, есть раздел Страницы веб-представлений Views.
источник
если вы решите эту проблему без каких-либо изменений в своем проекте, как я, вам нужно изменить файл web.config, который находится в папке просмотра. просто введите новую строку, нажав Enter или удалите пустую строку. затем сохраните ваш web.config и пересоберите. моя проблема решена с этим решением
источник
Я пытался добавить представление, которое находилось за пределами моей папки «Представления» (я думаю, просто чтобы организовать мой код по-другому), когда у меня возникла эта проблема. Создание представления внутри Views (как принято) решило эту проблему.
источник
В моем случае я пропустил @ в начале foreach
источник
В моем случае я случайно удалил файл web.config из папки Views. Я добавил его обратно, и все было в порядке.
источник
Я решил проблему, используя
@Model
вместо того, чтобы простоmodel
печатать переменные.источник
Вы, вероятно, будете использовать в коде переменную с именем
model
.источник