c# - MVC4 中的 ViewBag 可以为 null 吗?

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

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

具体来说,我想知道它是否可以在 View 中为 null。但是,有关它是否可以在 Controller 中为 null 的其他信息将很有用。

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

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

最佳答案

不,它不能。

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

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

关于c# - MVC4 中的 ViewBag 可以为 null 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16837423/

相关文章:

c# - 来自另一个程序集的 Razor 布局

javascript - 如何从 View (MVC) 上的输入控件获取值

c# - 使用 LINQ Entity Framework 的 LEFT JOIN 或 RIGHT JOIN

c# - 根节点有属性时如何选择xml根节点?

css - 如何在 ASP.MVC Bootstrap 模板中增加 EditorFor 中输入表单的长度?

asp.net-mvc - 在 Razor View 中有条件地禁用文本框

c# - 后退按钮横行

c# - 如何为开放泛型类型声明变量?可能的?

asp.net-mvc - 最佳实践:在Web api Controller 中处理错误和异常的方法?

asp.net - 如何从 Controller 设置@Html.ActionLink 的动态标题?