2013-05-30 2 views
8

В MVC4, возможно ли для ViewBag когда-либо быть null? Если да, то в каких сценариях это может быть? Если нет, то откуда вы знаете?Может ли ViewBag быть пустым в MVC4?

В частности, я хочу знать, может ли это быть null в виде. Тем не менее, дополнительная информация о том, может ли она быть null в контроллере, была бы полезна.

Например, мне нужно выполнить проверку null?

if (ViewBag != null && ViewBag.Something != null && ViewBag.Something.Foo == "Bar") 
{ 
    // can ViewBag be null? 
} 
+0

В свете или в контроллере? – SLaks

+0

Либо я предполагаю, но конкретно в представлении. – matthewpavkov

ответ

17

Нет, она не может.

ViewBag свойство геттер в WebViewPage выглядит следующим образом:

public dynamic ViewBag 
{ 
    get 
    { 
     if (_dynamicViewData == null) 
     { 
      _dynamicViewData = new DynamicViewDataDictionary(() => ViewData); 
     } 
     return _dynamicViewData; 
    } 
} 
+0

Вот что я искал. – matthewpavkov

+0

Я пробовал отслеживать это сам, однако все, что я мог найти, это 'public dynamic ViewBag {get; } 'в' ViewMasterPage'. Как вы нашли это? – matthewpavkov

+2

@matthewpavkov: http://aspnetwebstack.codeplex.com/ – SLaks

5

сам ViewBag не может быть пустым, поэтому первая проверка

if (ViewBag != null) 

бесполезно

Смежные вопросы