【发布时间】:2014-10-15 17:04:25
【问题描述】:
部分视图在传递 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>
【问题讨论】:
-
显示部分视图代码
-
我已经添加了部分视图代码@Ehsan Sajjad.. 请您指教
-
乍一看,您正试图将模型传递给要求
int?的ActionResult -
@ethorn10
@Html.Partial不会调用操作方法,它只是运行具有该名称的cshtml文件 -
@user2254395 如果要直接处理,我怀疑部分视图中出现错误-
viewModelList绝对是IEnumerable<VMClient>?你如何创建这个变量?
标签: c# asp.net-mvc asp.net-mvc-partialview