在我的 ASP.NET MVC4 Web 应用程序中,我有一个部分视图。它只是一个局部视图,旨在显示一个表格,给定一组实体。它看起来像这样:
@model ICollection<Portal.Models.Matter>
<table class="table table-striped table-bordered table-hover">
<thead>
<tr>
<th>Name</th>
<th>Last Accessed</th>
<th>Client</th>
</tr>
</thead>
<tbody>
@if (Model.Count > 0)
{
@Html.DisplayForModel()
}
else
{
<tr>
<td colspan="3" class="text-muted text-centered">There are no Matters to display.</td>
</tr>
}
</tbody>
</table>
我有一个Matter
静态类型为单个Matter
实体的 DisplayTemplate,它处理每个表行的呈现。
出于某种原因,当这个部分被渲染时,而不是使用Matter
DisplayTemplate 它只显示以下内容:
System.Collections.Generic.List`1[Portal.Models.Account]System.Collections.Generic.List`1[Portal.Models.Account]
现在,这个部分甚至没有绑定到Account
实体集合。它绑定到Matter
实体集合。那么,为什么@Html.DisplayForModel()
要显示Account
s 的集合呢?在运行时,使用调试器,我可以看到Model
实际上是Matter
实体的集合,而不是Account
.
我使用以下代码呈现此部分:
@Html.Partial("~/Views/Matter/_Table.cshtml", Model.Client.Matters, new ViewDataDictionary())