ASP.net MVC将数据从分部视图传递回主视图

本文关键字:视图 主视图 MVC net 数据 ASP | 更新日期: 2023-09-27 18:10:41

我正在使用Ajax动态加载我的Partial View,以便输入的文本框与我的主数据列表在同一页面上,而不必在每次进行编辑时重新加载主数据列表。最初显示数据列表,用户可以单击条目将其加载到文本框中,当前处于仅查看模式,之后他们可以选择edit来编辑条目。我遇到的问题是编辑按钮在我的主视图中,而我想编辑的项目的id在部分视图中。

My Main View

@model PresentationLayer.Models.HR.EquipmentTypes
@{
    ViewBag.Title = "Equipment";
}
@section script{
    <script type="text/javascript">
        $.ajaxSetup({
            cache: false
        }); 
</script>
}
<h2>Links</h2>
<h3>All links</h3>
<table>
    <thead>
        <tr>
            <td>Name</td>
        </tr>
    </thead>
    @foreach (var equipmentType in Model.EquipmentType)
    {
        <tr>
            <td>@Ajax.ActionLink(equipmentType.Name, "Index", "Link", new { id = equipmentType.Id }, new AjaxOptions { HttpMethod = "GET", UpdateTargetId = "linkEdit", InsertionMode = InsertionMode.Replace })</td>
        </tr>
    }
</table>
@Html.Partial("LinkEdit", Model.TypeToEdit)
@Ajax.ActionLink("Edit", "Edit", "Link", new { id = equipmentType.Id }, new AjaxOptions { HttpMethod = "GET", UpdateTargetId = "linkEdit", InsertionMode = InsertionMode.Replace })

My Partial View

@using PresentationLayer.Models.HR
@model PresentationLayer.Models.HR.EquipmentType
<div id="linkEdit">
    @using (Html.BeginForm())
    {
        @Html.ValidationSummary(true)
        <fieldset>
            <legend>Edit</legend>
            @if (Model.isLocked == true)
            {
                @Html.TextBoxFor(model => model.Name)
                @Html.HiddenFor(model => model.Id, new {id="hiddenid"})
            }
            else
            {
                @Html.TextBoxFor(model => model.Name, new { disabled = "disabled", @readonly = "readonly" })
            }
            <p>
                <input type="submit" value="Save" />
            </p>
        </fieldset>
    }
</div>

我需要能够得到隐藏的数据出来,并能够推id在设备类型。作为我的Ajax编辑调用的一部分,我最初试图使用TempData,因为这做了我所追求的,但我最初不明白TempData是如何临时的。最初的要求是编辑按钮在主布局中,但这似乎是不可能的。

我对ASP.net MVC相当陌生,已经编写了几年的ASP.net代码并在Java中研究MVC,但这让我有点停了下来。希望我已经提供了足够的信息,如果没有,请告诉我,我会尽量扩展。

谢谢

ASP.net MVC将数据从分部视图传递回主视图

编辑按钮在foreach循环之外。它根本不会得到任何id。

将Edit按钮放置在循环中以获取equipmentType.Id的值。每行都有自己的Edit按钮。这是在具有编辑功能的表格数据中通常做的事情。