Я снова начинаю разрабатывать ASP.NET и столкнулся с небольшой ошибкой в Visual Studio. Мои файлы .cshtml показывают ошибки при использовании некоторых функций бритвы. Например, «Имя ViewBag не существует в текущем контексте». Вот картинка:
Я использую демонстрационный проект. Вы можете найти проект здесь: https://github.com/Wintellect/Angular-MVC-Cookbook/tree/master/BasicProject
Я просмотрел несколько других тем, и большинство из них предлагает обновить файл (ы) web.config. Эти 2 файла конфигурации уже присутствуют, и, поскольку это довольно популярная демонстрация, я предполагаю, что в ней есть вся необходимая конфигурация. Я, конечно, просмотрел эти файлы конфигурации, и они действительно включают предлагаемые решения.
Другие детали:
- Я уже использовал решение clean & rebuild, но это ничего не изменило.
- Когда я создаю совершенно новый проект MVC, он действительно работает
- У моего друга такая же проблема, и мы оба используем VS 2015 и Windows 10.
- Я все еще могу запустить приложение, и оно работает.
Заранее спасибо.
источник
Ответы:
У меня возникла эта проблема, несмотря на правильную конфигурацию.
Оказалось, что это были плохие файлы в кэше компонентов, которые мешали представлениям Razor распознавать ViewBag, Model и HtmlHelpers . Удаление этих файлов решило проблему (хорошие версии этих файлов были созданы при следующем открытии Visual Studio).
Файлы находятся здесь:
Удалите все четыре файла:
Впоследствии я видел ту же проблему на нескольких других машинах разработчика, и это исправление быстро ее решает.
источник
Обновите номера версий в настройках
web.config
файла в папке Views.Если вы обновили версию MVC через nuget, должно быть:
Возможно, потребуется обновить и другие версии зависимостей. Проблемы с компиляцией и пространством имен в представлениях для помощников и объектов MVC обычно связаны с испорченными
web.config
файлами в папках представления.источник
4.0.0.0
, это видно из свойств. Что нужно исправить в моем случае?*.cshtml
и*.vbhtml
файлы и очистить и восстановить решение. VS 2019 16.1.2Найдите в настройках приложения «Веб-страницы: Версия» и обновите его до версии 3.0.0.0. В моем web.config
и я обновил его до
источник
Temporary ASP.NET Files
) не помогло, но этот ответ помог .Случайно удалил
web.config
изViews
папки, подумав, что это не нужно. Когда поставил обратно, заработало.источник
Перепробовав все под солнцем, то получается, что - то изменило мои
System.Web.WebPages.Razor
<sectionGroup>
ин/Views/Web.Config
от надлежащего CamelCaseSystem.Web.WebPages.Razor
на все-строчный ,system.web.webpages.razor
которая в конечном счете была моя кончиной.Надеюсь, это поможет какой-нибудь другой бедной душе справиться с этой проблемой ...
Для справки, это правильная запись (для моего сценария)
источник
Иногда бывает недостаточно изменить номера версий в настройках web.config. Эта проблема возникает из-за того, что в Visual Studio 2015 нет инструментов mvc4.
Решение - обновить ваш проект до MVC 5. Это полностью решает проблему. Вы можете получить помощь на этой странице. Это ясно объясняет.
http://www.asp.net/mvc/overview/releases/how-to-upgrade-an-aspnet-mvc-4-and-web-api-project-to-aspnet-mvc-5-and-web- api-2
Кстати, команда Visual Studio заявила, что добавит поддержку mvc4 в Visual Studio 2015 с первым обновлением.
источник
Я сталкивался с этой проблемой несколько раз и, наконец, обнаружил, что это произошло, потому что папка представлений должна содержать собственную веб-конфигурацию
источник
поздно к игре, но ни одно из этих решений не помогло мне.
Я обновился до VS 2017, и сайт работал, но компилятор Visual Studio сломал большинство файлов .cshtml.
TL; DR;
mysolution.sln имеет неправильную версию
поэтому вы хотите создать новое решение с более новой VS, сравнить его со своим и скопировать информацию о версии.
полные шаги обновления:
источник
Я потратил на это много рабочего дня. Я пробовал все в этом (и других) постах, но безрезультатно. В конце концов я обнаружил, что мне нужно открыть проект по-другому. Я только что обновил существующий веб-сайт до Visual Studio 2015, MVC5, .NET framework 4.5.2 и использую Windows 10, но подозреваю, что ответ был бы таким же для других версий каждого программного приложения.
Итак, это вариант меню, который я выбрал, чтобы открыть веб-сайт:
Вместо этого я открыл файл csproj, определяющий проект, используя эту опцию меню:
Затем у меня был вариант «чистого решения», на который ссылаются многие другие:
Впрочем, мне это даже не понадобилось - все просто заработало! Что ж, я все равно перешел к следующему набору проблем ...
источник
Я добавил контроллер
соответствующий код создан:
Мои ошибки были изменены путем изменения Шага 1 как:
соответствующий код создан:
Проблема заключалась в следующем: я не унаследовал свой класс от контроллера.
В мою ошибку включены и другие сообщения - все из этой проблемы:
Надеюсь, это изменение поможет тем, кто не обращал внимания на своих начальных шагах.
источник
Попробовав хотя бы 90% всех решений / уловок по этой (и другим) теме, я наконец решил это !! Спойлер, нет никаких следов логики - это следующее так называемое «решение»: запуск решения со всеми закрытыми вкладками, наконец, сработал, когда ничто другое не спасло бы меня, «ViewBag & Co не существует в текущем контексте» ... Вас предупредили, никакой долбанной логики!
Надеюсь, однажды это кому-нибудь поможет ^^
источник
В моем случае эта проблема возникала только на моем ПК только для одного проекта. Мой проект отлично работал в VS2012, но при открытии в VS2017 возникла эта проблема.
Основной проблемой для меня здесь был кеш. Мой проект указывал на более старые кешированные версии dll для Razor и MVC и не находил функций, которые были добавлены в более новых версиях, таких как ViewBag. ViewBag был добавлен в Razor версии 3, но поскольку у меня был кэширован Razor версии 2, он не мог найти ViewBag (но мог найти другие вещи, которые присутствовали в версии 2). Однако простая очистка кеша, как в принятом ответе, не устранила мою проблему. Нам пришлось изменить файлы конфигурации, чтобы сказать «использовать версию 3 вместо 2» для Razor и «использовать версию 5 вместо 4» для MVC, затем закрыть VS, удалить кеш, открыть проект и перестроить. Потом все наладилось. Ниже приведены более подробные инструкции.
Вот последовательность изменений, которые помогли мне решить мою проблему:
Вот эти строки в моем случае:
(примечания: 1) ваши версии могут быть разными, я просто говорю, что нужно было сделать в моем случае 2) Я пропустил некоторые вещи с помощью «...» для краткости 3) даже если у вас есть версия MVC, например, 5.3.2.0 вы все равно должны ввести 5.0.0.0, то же самое с версией Razor - введите все нули в 3.0.0.0)
В основном файле конфигурации (тот, что на верхнем уровне) измените
webPages:version
с 2.0.0.0 на 3.0.0.0.Возможно, это изменение не повлияло на решение, но я все же упомяну об этом. Убедитесь, что
<namespaces>
раздел папки «Просмотры» имеет то же содержимое, что и основной файл .conifg в корне проекта, например:%LOCALAPPDATA%\Microsoft\VisualStudio\14.0\ComponentModelCache
(или независимо от того, какой у вас правильный путь), как это предлагается в (в настоящее время) принятом ответе Фентона. Также удалите.scan
файл, даже если он не упоминается в этом ответе. Когда вы закончите, откройте VS, очистите свой проект и перестройте его. Теперь все должно работать. У меня это сработало.источник
Отключение и повторное включение сработало для меня. Вы можете попробовать перезапустить Visual Studio.
источник
Мне удалось решить проблему, добавив следующее в начало моей страницы .cshtml
После перекомпиляции мне удалось удалить эту строку, и ошибка исчезла.
источник
Я столкнулся с аналогичной проблемой с одной из моих точек зрения. В моем случае я просто очистил решение и попытался восстановить его и его работу.
источник
следующая ссылка может вам помочь.
Это покажет вам, в чем может быть проблема
это решает мою проблему. каким-то образом мне пришлось удалить файл web.config из папки просмотра.
источник
Я столкнулся с той же проблемой. Я попробовал очистить, построить и перестроить, но у меня ничего не вышло.
Итак, наконец, я сделал, как показано ниже:
Надеюсь, это сработает и для вас, ребята.
источник
После обновления одного из моих клиентских приложений с ASP MVC 4 до ASP MVC 5 у нас возникли ошибки дизайнеров, связанные с Html Helpers и ViewBag на страницах cshtml.
Чтобы исправить эти проблемы, убедитесь, что вы сделали следующее: Установите библиотеку веб-помощников Asp.NET из Nuget. Откройте файл Web.config проекта и обновите привязки, если они не были обновлены, например, при установке пакетов Nuget.
Найдите «веб-страницы: Версия» в настройках приложения и обновите его до версии 3.0.0.0. В моем web.config
и я обновил его до
Перезапустите Visual Studio и выполните сборку заново. Возможно, вам придется удалить папку bin для вашего проекта
Посетите это: https://lajak.wordpress.com/2014/11/16/asp-mvc-5-viewbag-does-not-exist-in-the-current-context/
источник
Попробовав все остальное и немного разочаровавшись, я обновил платформу .NET в моем приложении MVC5 с 4.5 до 4.5.2. Как-то это устранило мою проблему. Надеюсь, поможет.
источник
Решил заменить в web.config
с участием
источник