【发布时间】:2023-03-31 23:42:01
【问题描述】:
我有一个页面,其中呈现了 2 个或更多部分视图。每个视图都是一个可提交的表单。为视图提供的模型是从MyProject.Models.CompositeModel 提交的,该MyProject.Models.CompositeModel 包含一个对象和一个对象列表(这两个对象都是 ADO.NET 模型,我们称它们为 Model_1 和 Model_2)。
渲染到局部视图的 2+ 个模型具有相同名称的属性,输入也具有相同名称(两者都在于 model_2 表单可以有 n 次迭代,以及它们自身具有的 2 个模型一些具有相同名称的属性)。
我这样渲染父视图:
@model MyProject.Models.CompositeModel
@{
ViewBag.Title = "Edit";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Edit</h2>
@Html.Partial("_Table1EditRowPartial",Model.Table1RowData)
@foreach (var Table2RowData in Model.Table2Rows) {
@Html.Partial("_Table2EditRowPartial",Table2RowData)
}
...部分视图是:
@model MyProject.Models.Model_x
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.LabelFor(model => model.prop_1)
@Html.EditorFor(model => model.prop_1)
@Html.ValidationMessageFor(model => model.prop_1)
...
@Html.LabelFor(model => model.prop_n)
@Html.EditorFor(model => model.prop_n)
@Html.ValidationMessageFor(model => model.prop_n)
<input type="submit" value="Save" />
}
@Html.ActionLink("Back to List", "Index")
我需要一种通过 jQuery 或 .NET ajax 帮助程序库异步提交所有表单的方法。或者,如果我可以有一个按钮来分割和编辑模型,然后将其重新组合成CompositModel 并提交它。它可以是 Razor 语法或其他任何方法,任何一种方法都可以,如果有内置方式,我更愿意这样做,而不是扩展我的 lib 数据库。
【问题讨论】:
-
为什么你只是把所有东西都包装在一个表格里?
标签: jquery asp.net-mvc forms asp.net-mvc-4 razor