【问题标题】:Can ViewBag be null in MVC4?ViewBag 在 MVC4 中可以为空吗?
【发布时间】:2013-05-30 13:23:42
【问题描述】:

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

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

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

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

【问题讨论】:

  • 在视图中还是在控制器中?
  • 我认为是,但特别是在一个视图中。

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


【解决方案1】:

不,它不能。

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

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

【讨论】:

  • 这就是我要找的。​​span>
  • 我尝试自己追踪这个,但我能找到的只是public dynamic ViewBag { get; } in ViewMasterPage。你是怎么找到这个的?
【解决方案2】:

ViewBag本身不能为空,所以先检查

if (ViewBag != null) 

没用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-21
    相关资源
    最近更新 更多