ViewBag可以在MVC4中为空吗?

mat*_*kov 8 c# viewbag asp.net-mvc-4

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

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

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

if (ViewBag != null && ViewBag.Something != null && ViewBag.Something.Foo == "Bar")
{
    // can ViewBag be null?
}
Run Code Online (Sandbox Code Playgroud)

SLa*_*aks 17

不,它不能.

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

public dynamic ViewBag
{
    get
    {
        if (_dynamicViewData == null)
        {
            _dynamicViewData = new DynamicViewDataDictionary(() => ViewData);
        }
        return _dynamicViewData;
    }
}
Run Code Online (Sandbox Code Playgroud)


Rap*_*aus 5

ViewBag 本身不能为null,所以先检查一下

if (ViewBag != null) 
Run Code Online (Sandbox Code Playgroud)

没用