部分视图在传递ViewModel时不呈现..它的渲染没有ViewModel。 我的意思是如果我保留@ Html.Partial(" PartialClientIndex")然后它的渲染,当我传递ViewModel时,它直接进入Dispose而不渲染局部视图。 我在这里遗漏了一些东西..你可以帮忙吗。
主要观点:
<div id="PartialClient">
@Html.Partial("PartialClientIndex", viewModelList)
</div>
动作:
[HttpPost]
public ActionResult PartialClientIndex(int? SelectedGroupId)
{
int SkipRec = 0;
int NextRec = 25;
VMClient vmclient = new VMClient();
vmclient.IEClients = db.client.Where(cl => cl.Groups.id == SelectedGroupId).OrderBy(c => c.id).Skip(SkipRec).Take(NextRec).ToList();
return PartialView("PartialClientIndex", vmclient);
}
部分视图:
@model IEnumerable<HostingManager.Models.VMClient>
<table>
<thead>
<tr>
<th style="width:25px; padding:10px;">
Group
</th>
<th class="tbContent-Name">
Client Name
</th>
<th class="tbContent-Name">
Contact Person
</th>
<th class="tbContent-Name">
Contact Email
</th >
<th></th>
</tr>
</thead>
<tbody>
@if(Model != null)
{
var x = Model.Select(c=>c.IEClients).ToList();
var y = x[0].ToList();
// var y = x[0]["item1"];
foreach (var item in y) {
<tr>
<td class="tbContent-Name">
@Html.DisplayFor(modelItem => item.Groups.name)
</td>
<td class="tbContent-Name">
@Html.DisplayFor(modelItem => item.contactPerson)
</td>
<td class="tbContent-Name">
@Html.DisplayFor(modelItem => item.contactPerson)
</td>
<td class="tbContent-Name">
@Html.DisplayFor(modelItem => item.contactEmail)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id=item.id }) |
@Html.ActionLink("Delete", "Delete", new { id = item.id }, new { onclick = "return confirm('Are you sure you wish to delete this ?');" })
</td>
</tr>
}
}
</tbody>
答案 0 :(得分:0)
您作为模型传递到局部视图中的变量vmclient
似乎是VMClient
类型。虽然您的部分视图期望IEnumerable<VMClient>
类型。
您基本上必须将局部视图中的模型类型更改为以下
@model HostingManager.Models.VMClient
并调整您分配y
变量的方式
var y = Model.IEClients;