Подтвердить что ты не робот

Имя "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

4b9b3361

Ответ 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 помогает.