ASP.NET MVC模式下的编辑



我正在尝试在模态中进行编辑。

@foreach (var item in Model.DataList)
{
<tr>
<td>@Html.DisplayFor(modelItem => item.ID)</td>
<td>@Html.DisplayFor(modelItem => item.ProjectName)</td>
<td>@Html.DisplayFor(modelItem => item.Attachment.Name)</td>
<td><a href="#" onclick="editData(@item.ID,'EditModal')" class="btn btn-primary">Edit</a></td>               
<input type="hidden" value="@item.ID | @item.ProjectName | @item.Material.MaterialName " id="@item.ID" />
</tr>
}

这在没有@item.Material.MaterialName的情况下是有效的。对于这个模型,我得到了这个错误:

错误:对象引用未设置为@Html中对象的实例。DisplayFor(modelItem=>item.Attachment.Name(

有人能告诉我为什么以及如何修复它吗?

我试过了:

<td>
@if (item.Attachment != null)
{
@Html.DisplayFor(modelItem => item.Attachment.FileName)
}
</td>

和:

<input type="hidden" value="@item.ID | @item.ProjectName | @item.Material.MaterialName | @item.Attachment.Name " id="@item.ID" />

我在"这在没有@item.Material.MaterialName的情况下有效"上面的行表示您的模型,您将其从具有null值的material的action方法绑定,所以您正试图访问null值数据&这会给你一个错误,你在下面提到的那一行。无论您想在哪里使用可能为null的属性,都可以尝试使用以下内容@项目。布料材料名称&还要确保在父类中声明的属性可以为null。