我需要在我的视图中使用ViewModel,但出现错误Null引用异常(foreach(模型中的var项))(item = null)。我该如何克服呢?
控制器:
public async Task<IActionResult> Index(int? page)
{
var pagesList = from m in _BSXCertAssignmentsItem.All select m;
int pageSize = 20;
int pageNumber = (page ?? 1);
var pagedPages = pagesList.ToPagedList(pageNumber, pageSize) as PagedList<BSXCertAssignmentsViewModel>;
var idlist = _BSXCSRServiceItem.All.Where(x => x.SERVICE_ID != 0);
return View(pagedPages);
}
ViewModel:
public class BSXCertAssignmentsViewModel
{
public BSXCertAssignments certAssignments { get; set; }
public BSXCSRService service { get; set; }
}
查看:
@model PagedList<BSXCertAssignmentsViewModel>
.
.
.
@foreach (var item in Model)
{
<tr class="clickable-row" data-href="/BSXMCertAssignments/Edit/@item.certAssignments.CERT_ASSIGNMENT_ID">
<td>
@Html.DisplayFor(modelItem => item.certAssignments.CERT_ASSIGNMENT_ID)
</td>
<td>
@Html.DisplayFor(modelItem => item.certAssignments.CERT_ASSIGNMENT_NAME)
</td>
<td>
@Html.DisplayFor(modelItem => item.certAssignments.SERVICE_ID)
</td>
<td>
@Html.DisplayFor(modelItem => item.certAssignments.REG_ID)
</td>
<td style="width:120px">
<a asp-action="Delete" asp-route-id="@item.certAssignments.CERT_ASSIGNMENT_ID">
<div class="bt_cl admin-bt-dl">
<i class="fa fa-trash-o admin-icon pull-left" aria-hidden="true"></i>
</div>
</a>
<a asp-action="Edit" asp-route-id="@item.certAssignments.CERT_ASSIGNMENT_ID">
<div class="bt_cl admin-bt-edit">
<i class="fa fa-pencil-square-o admin-icon pull-left" aria-hidden="true"></i>
</div>
</a>
</td>
</tr>
}
我知道当我在“模型”中键入“ var item”时,它应该为null,因为ViewModel本身不包含项目,它只是引用某些模型,但是这种理解并不能帮助我解决问题。