2013-05-30 76 views
8

在MVC4中,ViewBag有沒有可能是null?如果是這樣,在什麼情況下可以?如果不是,你怎麼知道?MVC4中ViewBag可以爲null嗎?

具體來說,我想知道它是否可以在視圖中爲null。但是,有關控制器中是否可以使用null的更多信息將非常有用。

例如,是否需要執行null檢查?

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

在一個視圖或控制器? – SLaks

+0

要麼我想,但特別是在一個視圖。 – matthewpavkov

回答

17

不,不能。

WebViewPageViewBag屬性的getter看起來是這樣的:

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) 

是沒用的