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

Обновлено до MVC 3: CS0103: имя "Вид" не существует в текущем контексте

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

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

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

Это не работает на линии:

@{
   View.Title = "MyView";
}

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

Я скопировал web.config из новой папки Просмотр приложений в свое примерное приложение, но проблема не устранена.

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

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

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

4b9b3361

Ответ 1

Он был переименован в "ViewBag". Вы можете узнать больше об изменениях с RC1 → RC2 здесь

Ответ 2

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

@Page.Title = "The title"

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

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

Ответ 3

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

EDIT: На самом деле у меня был MVC 3 RC. Выше было только другой симптом. У машины развертывания была RTM, которая выявила проблему. Как говорит Агрилли, теперь он называется ViewBag.