我正在学习ASP.NET Core的一些初学者教程,并且我已经设法构建了一个包含两个表的应用程序,这些表具有父子关系(.in:n)。
创建数据并保存数据,并且数据库中的数据正确。
当我现在点击详细信息视图时,问题出现了,我在那里做常规的
...
<dt>
@Html.DisplayNameFor(model => model.Associations)
</dt>
<dd>
<table class="table">
<tr>
<th>Association</th>
</tr>
@foreach (var item in Model.Associations)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Title)
</td>
</tr>
}
</table>
</dd>
(希望看到包含所有关联的表格) - 行@foreach (var item in Model.Associations)
崩溃。在调试器中,我可以看到相应的model.ICollection<Association>
是null
。
我认为我遗漏了一些内容,因此从数据库中读取对象并不会自动包含带有关联的数组 - 我的模型对象的所有数据都被读取并可用;只是不是ICollection的内容。
整个代码是使用Scaffolding创建的,据说应该马上就可以了。 Lazy Read 是一个潜在的原因,但即使我改变了它,它也没有用。
我认为这是一个血腥的初学者错误 - 我现在有大约20个小时的Web开发经验 - 而且我可能错过了一些必要的文件编辑。
我确实花了20个中的最后8个来寻找这个问题,我从头开始重新创建了整个应用程序两次,但问题始终如一。有什么提示吗?
编辑:不是 Objects in ICollection not passed with model to view的副本 - 我工作过。这是一个较旧的框架版本,解决此问题的语法不再有效,并且据称不再需要。