使用jQuery将表单序列化为对象数组
我试图将特定形式的所有输入序列化到对象数组中,以便将其传递给控制器操作,然后一次更新多行。我的问题是连载部分。。。不知怎么搞砸了 这里是我生成表单的地方:使用jQuery将表单序列化为对象数组,jquery,asp.net-mvc-3,serialization,Jquery,Asp.net Mvc 3,Serialization,我试图将特定形式的所有输入序列化到对象数组中,以便将其传递给控制器操作,然后一次更新多行。我的问题是连载部分。。。不知怎么搞砸了 这里是我生成表单的地方: $.each(content, function (i, item) { var html = "<br />Choice ID<br /><input type='text' name='QuestionChoicesId' value='"
$.each(content, function (i, item) {
var html = "<br />Choice ID<br /><input type='text' name='QuestionChoicesId' value='"
+ item.QuestionChoicesId + "'><br />Choice Display Text<br /><input type='text' name='DisplayText' value='"
+ item.DisplayText + "'><br />Order of Display<br /><input type='text' name='OrderNumber' value='"
+ item.OrderNumber
+ "'>";
$(html).appendTo("#choices");
});
以下是console.log
输出:
它应该是一个对象数组,每个对象都有
QuestionChoicesId
、DisplayText
和OrderNumber
。首先建议您包装每个组,这样就可以在包装器上构建一个循环
$.each(content, function (i, item) {
var html = '<div class="control_group">';
/* your exisiting string build code*/
html += '</div>';
});
虽然它的结构可能是这样的,但我认为它发布的内容正如您所期望的那样。你看过它是如何在ajax调用中发布的吗?我做了同样的事情,它工作正常,绑定正确。您可以使用:jquery.serializeToJSON- 它准备与表单ASP MVC一起使用
var obj=$(“form”).serializeToJSON() 控制器中的映射不正确。不停地叫喊
NullReferenceException
。因此,我跟踪了这个问题,发现表单的序列化不正确
。
$.each(content, function (i, item) {
var html = '<div class="control_group">';
/* your exisiting string build code*/
html += '</div>';
});
var ajaxData = $('.control_group').map(function (idx,group) {
var data = {};
$(group).find(':input').each(function () {
data[this.name] = this.value;
});
return data;
}).get();