在 ASP.NET MVC 中从部分视图发布动态表单数据
Posted
技术标签:
【中文标题】在 ASP.NET MVC 中从部分视图发布动态表单数据【英文标题】:Post dynamic form data from partial view in ASP.NET MVC 【发布时间】:2021-11-30 01:28:11 【问题描述】:我正在尝试向旧的 ASP.NET MVC 项目添加新功能。每次点击按钮都想添加新的地址表单,而且客户的地址是列表,会动态添加,问题是模型在发布时没有绑定地址列表数据。
这是我Customer
的模型:
public class CustomerInfo
public CustomerModel CUSTOMER get; set;
public CustomerAddress CustomerAddresses get; set;
地址模型:
public class CustomerAddresses
public string Address get; set;
这是附加地址列表的 jQuery 代码:
$(document).on('click', "#addAddressItem", function (e)
e.preventDefault();
$.ajax(
url: this.href,
cache: false,
success: function (html)
$("#RegisterAddressId").append(html);
);
);
加载部分视图的操作链接:
<div>
<div class="address">
</div>
<p>
@Html.ActionLink("add address", MVC.Applications.RegisterAddress(), new
id = "addAddressItem" )
</p>
<div id="RegisterAddressId">
</div>
</div>
部分视图操作:
public virtual PartialViewResult RegisterAddress()
return PartialView(MVC.Applications.Views.CustomerAddress);
局部视图:
@model WeaponPermissions.Models.RegisterCustomerAddress
<table>
<td class="personlistborder">
<div class="editor-label">
Address
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Address, new @class = "CustomerAddressField" )
@Html.ValidationMessageFor(model => model.Address)
</div>
</td>
<td colspan="7"></td>
<td>
<span id="deleteRegisterCustomerAddress" class="outline ui-button ui-widget ui-state-
default ui-corner-all" role="button" aria-disabled="false">
<span class="ui-icon-minusthick ui-icon "></span>
</span>
</td>
</table>
如有必要,我还应该删除附加的地址字段,这就是为什么有一个 ID 为 deleteRegisterCustomerAddress
的跨度
jQuery 将数据发布到点击操作:
buttons: (
"Save":
text: "save",
id: "btnSubmitExamApp",
click: function ()
var form = $('form', this);
var validator = $(form).validate();
if (validator.form())
debugger
var res = JSON.parse(form);
res.submit();
$(this).submit();
,
我做错了什么?研究这个话题很久了,没找到解决办法
【问题讨论】:
【参考方案1】:你可以在Request.Form["Address"]
找到它
并确保“RegisterAddressId”在发布的表单中。
由于您熟悉 jquery,因此使用 clone()
而不是调用“RegisterAddress”来添加新项目会更好
【讨论】:
以上是关于在 ASP.NET MVC 中从部分视图发布动态表单数据的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET MVC 如何从嵌套对象的视图模型集合中动态创建表结构
在 asp.net core 5 MVC 视图中从 C# 代码调用 JavaScript 函数
在 ASP.NET MVC 5 中从数据库加载 Razor 视图
无法在 ASP.NET MVC 5 中从视图到控制器获取 Select2 标记值
如何在 ASP.NET MVC 部分视图中使用 JQuery 表排序器插件?当我在视图中插入 PartialView 时,我使用的是 ajax