【发布时间】:2017-03-26 14:02:32
【问题描述】:
我在页面上有一个表单,输入的数据被发布到服务器。我现在想在帖子中添加一个数组,如下所示:
$("#createTankForm").submit(function() {
if ($(this).valid()) {
var data = $(this).serializeArray();
var celVerLst = [];
var formsLst = $(".TankCalVertList").find("#createTankForm .adminRow");
$(formsLst).each(function (i, v) {
var celVert = {
Number: $(this).find("#Number").val(),
Border: $(this).find("#Border").val(),
Volume: $(this).find("#Volume").val(),
Constant: $(this).find("#Constant").val(),
}
celVerLst.push(celVert);
});
data.push({
name: "TankCalVerts",
value: celVerLst
});
data = jQuery.param(data);
// at this point TankCalVerts is "object[]"
$.automation.worker.postUserData(this.action, data, function(data) {
$(".AdmClicked").click();
});
} else {
$(this).addClass("invalidForm");
}
return false;
});
正如我在上面的评论中所写的那样
TankCalVerts=%5Bobject+Object%5D%2C%5Bobject+Object%5D
在帖子中
而在action方法中:
我该怎么做?
编辑:
postUserData: function(url, data, callback) {
//$.LoadingOverlay("show");
$.ajax({
url: url,
type: 'POST',
data: data,
success: function(data) {
if (callback) {
callback(data);
//$.LoadingOverlay("hide");
}
},
});
}
【问题讨论】:
-
我们不知道
$.automation.worker.postUserData()对这些数据做了什么,也不知道您希望以什么格式接收它。显示所有相关代码 -
@charlietfl 请检查编辑
-
为什么不首先正确生成表单控件(您当前创建的元素具有重复的
id属性,这是无效的html,所以我假设name属性也是重复的)。对于现有的集合项目,请使用自定义EditorTemplate的for循环(请参阅 this answer),或者如果您动态添加项目请参阅 this answer -
那么脚本就变成了
$("#createTankForm").submit(function() { $.post(yourUrl, $(this).serialize(), function() {
标签: javascript jquery asp.net-mvc asp.net-mvc-5