我正在尝试创建一个动态网格,或者看起来是动态网格。我的目标是能够使用部分视图从单个视图中搜索,查看,编辑和删除记录。我希望它的行为与ASP.NET WebForms gridview类似。
基本上我有一个有三列的表。一个是ID,另一个是Name。第三个将保存简单的命令,如“保存”,“更新”,“取消”等等。
我有“_Create”,“_ Edit”和“_Delete”的单独视图。目前,我正在使用这种方法对它们进行处理:
public ActionResult RenderPartialView(string view, int? id)
{
if (id == null)
{
return PartialView(view);
}
else
{
ProjectData item = new ProjectData();
//populate data
return PartialView(view, item);
}
}
@Html.ActionLink("Edit", "RenderPartialView", new { view = "_Edit", id = @model.ID.ToString() })
这会使用正确的数据渲染局部视图,但是它不会在与该记录相关的特定div中显示。以下是表格和记录中的视图:
@foreach (var item in Model.Source)
{
<div id="@item.ProjectID">
<tr>
<td>
@Html.DisplayFor(modelItem => item.ProjectID)
</td>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
<td style="width: 100px; text-align: center;">
@Html.ActionLink("Edit", "RenderPartialView", new { view = "_Edit", id = @item.ProjectID })
</td>
</tr>
</div>
}
我的部分视图如下:
@using (Ajax.BeginForm("Index", "Project", null, new AjaxOptions() { UpdateTargetId = @Model.ProjectID.ToString(), HttpMethod = "Get" }, new { }))
{
@Html.AntiForgeryToken()
<tr>
<td>
@Html.DisplayFor(modelItem => modelItem.ProjectID)
</td>
<td>
@Html.TextBoxFor(modelItem => modelItem.Name)
</td>
<td style="width: 100px; text-align: center;">
@Html.ActionLink("Save", "Save")
@Html.ActionLink("Cancel", "RenderPartialView", new { view = "???", id = "" })
</td>
</tr>
}
如何渲染局部视图,在本例中是特定div中的“_Edit”?谢谢!
答案 0 :(得分:0)
如果您希望内容显示在td中,您需要:
@Html.Action(...)
不
@Html.ActionLink("Edit", "RenderPartialView"