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,但这让我有点停了下来。希望我已经提供了足够的信息,如果没有,请告诉我,我会尽量扩展。
谢谢
编辑按钮在foreach循环之外。它根本不会得到任何id。
将Edit按钮放置在循环中以获取equipmentType.Id的值。每行都有自己的Edit按钮。这是在具有编辑功能的表格数据中通常做的事情。