8

在 MVC4 中,有可能ViewBag永远存在null吗?如果是这样,它会在什么情况下发生?如果不是,你怎么知道?

具体来说,我想知道它是否可以null在视图中。但是,有关它是否可以null在控制器中的附加信息将很有用。

例如,我需要进行null检查吗?

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

2 回答 2

17

不,它不能。

ViewBag属性 getterWebViewPage如下所示:

public dynamic ViewBag
{
    get
    {
        if (_dynamicViewData == null)
        {
            _dynamicViewData = new DynamicViewDataDictionary(() => ViewData);
        }
        return _dynamicViewData;
    }
}
于 2013-05-30T13:27:33.693 回答
5

ViewBag本身不能为空,所以第一次检查

if (ViewBag != null) 

没用

于 2013-05-30T13:26:32.080 回答