Получение "CS0103: имя" ViewBag "не существует в текущем контексте" при удаленном развертывании MVC3

Я знаю, что эта ошибка была опубликована в другом месте, но предоставленные решения не работают для меня.

Фон:

  • Я создал новый проект с использованием MVC3 с синтаксисом Razor с использованием Visual Studio 2010 SP1.
  • Все работает нормально, когда я запускаю проект локально.
  • Я установил MVC3 на свой удаленный сервер и развернул проект.

Я получаю следующую ошибку:

Compiler Error Message: CS0103: The name 'ViewBag' does not exist in the current context
Source Error:
Line 1:  @model MyModels.AModel
Line 2:  @{
Line 3:      ViewBag.Title = "Home Page";
Line 4:  }
Line 5:  <script type="text/javascript">
  • Я проверил, и у меня есть файл Web.Config в моем каталоге представлений, который кажется полным.
  • Это не обновленное решение. Я не перешел от предыдущей бета-версии MVC к финальной версии.
  • Я сейчас схожу с ума. Я буду рад предоставить дополнительную информацию по запросу.

Ответ 1

Argh. Сервер, на котором я развернул мое приложение, имел старую версию MVC3. У меня был запущен установщик MVC3 до развертывания моего приложения, но, по-видимому, установщик не удаляет предыдущие бета-версии или версии RC MVC3. Вы должны удалять предыдущие версии MVC3 с помощью программ добавления/удаления до установки более новой версии.

Мне удалось сделать эту работу двумя способами:

  • Удалите MVC3 полностью с сервера, затем bin разверните DLL MVC3 с моим приложением.
  • После полной деинсталляции MVC3 установите последнюю версию из http://www.microsoft.com/web/gallery/install.aspx?appid=MVC3

Примечание. Перезапустите IIS после любых изменений. (Возможно, будет работать и переработка только пула приложений.)