【问题标题】:ViewBag is returning NullReferenceException [duplicate]ViewBag 正在返回 NullReferenceException [重复]
【发布时间】:2020-04-24 15:14:55
【问题描述】:

我从数据库中检索了一个数据列表。数据列表在控制器类中工作正常,并且确实有值,但是当我将它与ViewBag.List 绑定并尝试在视图中呈现它时,它会给出NullReferenceException。我不知道为什么它会给出这个例外。
控制器类

public ActionResult Index()
{ 
    var SomeList = Database.somelamdaexp.ToList();
    ViewBag.List = SomeList;
    return View();
}

查看

@foreach(var item in ViewBag.List)
{
    <tr>
        <td>@item.Field1<td>
        <td>@item.Field2</td>
    </tr>
}

【问题讨论】:

  • 请输入您的控制器代码和您尝试过的内容
  • 我已经编辑了我的代码
  • 我会为列表使用另一个名称,例如:ViewBag.MyList,List 是一种类型。
  • 如果可能,最好避免使用ViewBag,并将列表作为/与模型一起传递给视图。
  • @UweKeim 是的,原来我在我的 lamdaexp 中选择了一些匿名类型的数据列表,它们是内部的,无法在视图中使用。我创建了一个 modeview 类,现在它可以工作了。谢谢大家!

标签: c# asp.net-mvc nullreferenceexception


【解决方案1】:

ViewBag的用法是正确的,我无法重现问题,see this fiddle

问题可能是因为您的模型中不存在Field1Field2,或者您的代码中的其他地方抛出了异常。

【讨论】:

  • 那么它就不会是 NullReferenceException。
  • @GSerg 糟糕的是,我应该提到我的 lamda 表达式中有匿名类型。感谢您的宝贵时间。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多