渲染特定div中的局部视图

时间:2014-01-31 14:48:53

标签: asp.net-mvc

我正在尝试创建一个动态网格,或者看起来是动态网格。我的目标是能够使用部分视图从单个视图中搜索,查看,编辑和删除记录。我希望它的行为与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”?谢谢!

1 个答案:

答案 0 :(得分:0)

如果您希望内容显示在td中,您需要:

@Html.Action(...)

@Html.ActionLink("Edit", "RenderPartialView"