Имя "ViewBag" не существует в текущем контексте
У меня есть сервер Windows 2003 R2. Я должен запустить веб-сайт .NET MVC3.
Я уже установил все Runtimes (1,2 и 4), я установил все фреймворки MVC (3 и 4), но эта ошибка не исчезает.
У меня есть web.config, который должен находиться в Представлениях на месте. Я следил за всеми и каждым решением этой проблемы в и из stackoverflow. Я также развернул в моей папке bin всю DLL с помощью Add Deployable Dependencies (щелкните правой кнопкой мыши по проекту mvc).
В этот момент я не знаю, что еще делать. Извлечь идеи или решения в Интернете.
Я уже удалил и переустановил все среды выполнения, фреймворки и т.д. На моем локальном компьютере он работает просто отлично (Windows 7), но когда я развертываю, я получаю следующую ошибку.
Сообщение об ошибке компилятора: CS0103: имя "ViewBag" не существует в текущем контексте
Ошибка источника:
Строка 1: @{
Строка 2: ViewBag.title= "Домашняя страница";
Строка 3:}
Строка 4: <h2 > @ViewBag.Message </h2 >
Исходный файл: d:\FamilyDermMVC\Views\Home\Index.cshtml Строка: 2
Ответы
Ответ 1
Ok. Я починил это. Я точно не знаю, что исправил его, но я думаю, что все это "9 миль" исправляет его.
Я удалил (Удалить программы) все расширения MVC, инструменты и все, что вы там нашли.
Затем переустановить, не удаляя,.net runtime. 2 и 4.
Затем установите mvc3 и mvc4 обратно. Я перешел на asp.net для последних версий.
Тогда я сделал то же самое на своем ноутбуке.
ПРИМЕЧАНИЕ. Для установки MVC4 на сервере Windows2003 вам понадобится Power Shell 2.0. Вам нужно найти конкретную загрузку для этого сервера.
Как только я это сделал, переработал пул приложений и перезапустил сервер.
BANG... загружена страница.
Я надеюсь, что это поможет другим людям в будущем.
Спасибо за ваши ответы.
PS: Я чувствую, что у меня не было той же версии (или релизов) mvc3 (или mvc4) на моем ноутбуке и сервере соответственно.
Ответ 2
Похоже, вам не хватает следующего в Web.Config
в папке представлений:
/Views/Web.Config
<?xml version="1.0"?>
<configuration>
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage"> // <-- this line and contents are important
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
</namespaces>
</pages>
</system.web.webPages.razor>
Виды обычно выводятся из System.Web.Mvc.WebViewPage
, который настроен в файле web.config. Если вы не развертываете DLL с приложением, базовый класс находится в следующей DLL, установленной в:
Assembly System.Web.Mvc.dll, v4.0.30319
c:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 3\Assemblies\System.Web.Mvc.dll
Обновление 1
Если вы вручную обновляете MVC X до MVC Y, и это требует изменения целевой .Net Framework (скажем, от 4.5 до 4.6), если у вас есть старые ссылки (укажите на MVC 5 вместо 6), что, очевидно, старые файлы не могут использоваться в сочетании с более новыми файлами (например, MVC 5 DLL не могут использоваться с System.Web в 4.6).
Ответ 3
Я вижу, что это было опубликовано некоторое время назад, но я думал, что добавлю свой опыт с этой проблемой в любом случае.
После создания нового проекта MVC asp.net я получал эту же ошибку сразу с места в карьер. Я просто щелкнул BUILD → Clean Solution, а затем Build Solution, и он исправил проблему для меня. Все еще не совсем уверен, почему ошибка возникла в первую очередь, хотя она ошибочно сразу после ее создания.
Ответ 4
У меня был такой же тип проблемы (html-хелпер-код не распознавался).
Я не уверен, как это началось, но я решил это, заменив следующее:
<appSettings>
<add key="webpages:Enabled" value="false" />
</appSettings>
с
<appSettings>
<add key="webpages:Version" value="3.0.0.0" />
</appSettings>
в файле представлений web.config.
Нашел мое решение здесь
Ответ 5
Кажется, есть много решений, и вероятность успеха каждого из них смешана.
Для меня изменился номер версии в этой строке файла Views/web.config:
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
Я изменил 4.0.0.0 на 5.0.0.0, сохранил, закрыл решение, снова открыл, затем вуаля! Досадные красные squiggles были gones и intellisense возвратили
Ответ 6
Решайер, вероятно, вызывает его
Перейдите в Visual Studio/Инструменты/Параметры/Resharper
Затем нажмите Приостановить сейчас/затем Резюме Resharper, и ваш день больше не будет серым, но, вероятно, ваше окно бритвы будет иметь более серый цвет!
Ответ 7
В моем случае у меня возникла эта проблема, потому что я пытался запустить проект MVC 3 на платформе с поддержкой MVC 2.
тогда я установил MVC 3 в мою систему, проблема исчезла
Ответ 8
установка ASP.NET MVC 5 для Visual Studio 2012 от http://www.asp.net/mvc/mvc5 решает проблему для меня.
Ответ 9
Иногда закрывается представление, Rebuild, Open view помогает.