ViewBag可以在MVC4中为空吗?

时间:2013-05-30 13:23:42

标签: c# asp.net-mvc-4 viewbag

在MVC4中,ViewBag是否可能null?如果是这样,在什么情况下可能是?如果没有,你怎么知道?

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

例如,我是否需要执行null检查?

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

2 个答案:

答案 0 :(得分:17)

不,它不能。

ViewBag中的WebViewPage属性getter如下所示:

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

答案 1 :(得分:5)

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

if (ViewBag != null) 

没用了