2013-05-30 10 views
8

W MVC4, czy możliwe jest, aby ViewBag kiedykolwiek był null? Jeśli tak, jakie są możliwe scenariusze? Jeśli nie, skąd wiesz?Czy ViewBag może mieć wartość NULL w MVC4?

W szczególności chcę wiedzieć, czy może to być widok null w widoku. Jednak przydatne mogą być dodatkowe informacje o tym, czy może to być null w kontrolerze.

Na przykład, czy muszę wykonać test null?

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

W widoku lub kontroler? – SLaks

+0

Albo przypuszczam, ale konkretnie w widoku. – matthewpavkov

Odpowiedz

17

Nie, to nie możliwe.

ViewBag nieruchomość getter w WebViewPage wygląda następująco:

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

Tego właśnie szukałem. – matthewpavkov

+0

Próbowałem sam tego śledzić, jednak wszystko, co mogłem znaleźć, to 'public dynamic ViewBag {get; } 'w' ViewMasterPage'. Jak to zlokalizowałeś? – matthewpavkov

+2

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

5

sama ViewBag nie może być zerowa, więc najpierw sprawdzić

if (ViewBag != null) 

jest bezużyteczny

Powiązane problemy