Обновлен до MVC 3: CS0103: имя «Вид» не существует в текущем контексте - PullRequest
25 голосов
/ 11 декабря 2010

Я только что обновился до ASP.NET MVC 3 RC2.

Образец приложения, над которым я сейчас работаю, выдает следующую ошибку при отображении представления cshtml:

CS0103: имя «Вид» не существует в текущем контексте

Ошибка на линии:

@{
   View.Title = "MyView";
}

... и терпит неудачу везде, где встречается с представлением в коде файла Razor.

Я скопировал файл web.config из папки View новых приложений в пример приложения, но проблема сохраняется.

Новое приложение работает без проблем.

Я также перестроил решение, запустите Clean Solution. Радости нет.

Я не работал над образцом в течение нескольких дней. Так что это может быть проблема, которая не имеет ничего общего с RC2 ...

Ответы [ 3 ]

28 голосов
/ 11 декабря 2010

Он был переименован в «ViewBag».Вы можете прочитать больше об изменениях от RC1 -> RC2 здесь

4 голосов
/ 11 декабря 2010

У меня была такая же проблема, но я просто попытался угадать, что использовать сейчас, в итоге я использовал:

@Page.Title = "The title"

, и это сработало, хотя я не уверен, что такое "лучшая практика""now

Кроме того, я подумал, что ViewBag - это то, что раньше было ViewModel, а не просто View

0 голосов
/ 22 февраля 2011

Я добавляю это на случай, если кто-нибудь еще столкнется с этим. Другой возможной причиной является то, что ваш макет не был найден. Я развернул в IIS и (закомментировав ошибочную строку) обнаружил, что макет не был скопирован во время веб-развертывания. В моем случае это произошло потому, что действие компоновки макета было изменено с содержимого на None.

РЕДАКТИРОВАТЬ: На самом деле у меня был установлен MVC 3 RC. Выше было просто другой симптом. Машина развертывания имела RTM, который выявил проблему. Как говорит Вигли, теперь он называется ViewBag.

...