ASP.NET MVC 3 - свойство ViewBag не предоставляет IntelliSense - PullRequest
11 голосов
/ 18 января 2011

Я недавно установил ASP.NET MVC 3 через установщик веб-платформы.У меня нет поддержки Intellisense для ViewBag в представлении Razor.Intellisense прекрасно работает с моделью в режиме Razor.Я пытался пересобрать решение, отключить ReSharper ... но не смог заставить его работать.

Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

38 голосов
/ 18 января 2011

Свойство ViewBag имеет тип dynamic, что означает отсутствие IntelliSense.

ViewBag - это псевдоним / альтернативный синтаксис для доступа к словарю ViewData.Две следующие строки кода эквивалентны:

ViewBag.Message = "My message";
ViewData["Message"] = "My message";

ViewBag предлагает более краткий синтаксис, чем ViewData.Также обратите внимание, что доступ к ViewData с использованием строковых ключей также не обеспечивает IntelliSense, поэтому вы не теряете никакой функциональности.

Последнее замечание: ViewBag и ViewData используют одно и то же резервное хранилище, поэтомучто установка свойства одним методом делает его доступным другим методом:

ViewBag.Message = "My message";
string message = ViewData["Message"];
// message is now "My message"
9 голосов
/ 18 января 2011

Добавляем к ответу Марсинда динамический ViewBag:

Если вы хотите intellisense, вам нужно будет передать строго типизированный объект, а затем в своем представлении вы можете установить:* который даст вам intellisense, когда вы попытаетесь сделать @Model.Property

...