在Foreach(MVC)中使用类
本文关键字:Foreach MVC | 更新日期: 2023-09-27 17:58:45
我有点问题!在我的MVC中,每当它试图运行MVC时,它都会给我带来"System.NullReferenceException:对象引用未设置为对象实例"的问题。
基本上,这是控制器中的代码:
public PartialViewResult ViewAllFaults()
{
List<AdminLogEntries> faults = new FaultService.FaultServiceClient().GetAllOfFaultDetails().ToList();
ViewBag.ListOfFaults = faults;
return PartialView("_viewallfaults", faults);
}
这是我认为的代码:
@foreach (Common.Views.AdminLogEntries item in ViewBag.ListOfFaults)
{
<tr>
<td>
@item.FaultID
</td>
{...}
这是我的课:
namespace Common.Views
{
public class AdminLogEntries
{
public string FaultID { get; set; }
public string Description { get; set; }
public int ProductID { get; set; }
public string Username { get; set; }
public DateTime LogDate { get; set; }
public int OrderID { get; set; }
public string Status { get; set; }
}
}
我读了一些关于IEnumerable的内容,但无法真正实现或理解它。感谢您的帮助!
**更新:**
所以我发现它甚至没有通过控制器方法!我一定是在用错误的方式处理局部问题。这是我在主视图中写的:
@Html.Partial("~/Views/Admin/_viewallfaults.cshtml");
我认为这就是阻止它访问控制器的原因。。
尝试将代码更改为:
@foreach (Common.Views.AdminLogEntries item in Model)
当您将故障作为第二个参数中的视图模型传递给视图时:
return PartialView("_viewallfaults", faults);
我不确定ViewBag是否可用于部分视图。。。不管怎样,您当前使用的是return PartialView("_viewallfaults", faults);
,那么您只需要迭代您的模型!
@model List<Common.Views.AdminLogEntries>
...
@foreach (Common.Views.AdminLogEntries item in Model)
{
...
}
一眼望去,引用可以为null的地方有很多。现在,添加一些空检查,看看它可能在哪里。如果添加一个调用堆栈,可能会有所帮助。
FaultService.FaultServiceClient().GetAllOfFaultDetails().ToList();
GetAllOfFaultDetails()为null吗?
AdminLogEntries项是否具有空ID?