2013-05-30 9 views
8

In MVC4, è possibile che ViewBag sia mai null? In tal caso, in quali scenari potrebbe essere? Se no, come lo sai?È possibile che ViewBag sia null in MVC4?

In particolare, voglio sapere se può essere null in una vista. Tuttavia, potrebbero essere utili ulteriori informazioni sul fatto che possa essere null in un controller.

Ad esempio, è necessario eseguire un controllo null?

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

In una vista o in un controllore? – SLaks

+0

O suppongo, ma specificamente in una vista. – matthewpavkov

risposta

17

No, non può.

Il getter ViewBag proprietà a WebViewPage assomiglia a questo:

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

Questo è quello che stavo cercando. – matthewpavkov

+0

Ho provato a rintracciarlo da solo, tuttavia tutto ciò che ho potuto trovare è 'public dynamic ViewBag {get; } 'in' ViewMasterPage'. Come hai trovato questo? – matthewpavkov

+2

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

5

ViewBag stessa non può essere NULL, quindi il primo controllo

if (ViewBag != null) 

è inutile

Problemi correlati