如何将javascript对象的数组发送到服务器?
可能重复:如何将javascript对象的数组发送到服务器?,javascript,jquery,Javascript,Jquery,可能重复: 我有一个javascript中的以下构造函数对象数组: function MenuViewModel() { var self = this; var courseOptionObject = {}; courseOptionObject["Options"] = []; self.ShowHide = ko.observable(false); self.Id = ko.observable(getId());
我有一个javascript中的以下构造函数对象数组:
function MenuViewModel() {
var self = this;
var courseOptionObject = {};
courseOptionObject["Options"] = [];
self.ShowHide = ko.observable(false);
self.Id = ko.observable(getId());
self.Name = ko.observable();
self.CourseName = ko.observable();
self.Sequence = ko.observable('1');
courseOptionObject["MenuId"] = self.Id();
self.CourseOptions = ko.observable(new CourseOptionViewModel(courseOptionObject));
if (typeof MenuViewModel.saveButtonControll == "undefined") { //static members of class
MenuViewModel.saveButtonControll = ko.observable(new buttonModel({ Text: "Save & Continue", Disabled: true, Visible: true }));
MenuViewModel.IsTextEnable = ko.observable(true);
}
self.showDeleteIcon = function (data, event) {
data.ShowHide(true);
};
//Hide the delete button from the menu ( call at mouseleave form the menu )
self.hideDeleteIcon = function (data, event) {
data.ShowHide(false);
};
self.Errors = ko.validation.group(self);
}
我的阵列是:
var jObectArray = new Array();
for(var i = 0; i < 5; i++)
{
jObejctArray.push(new MenuViewModel());
}
但我正在向服务器获取一个空数组。谁能告诉我我错过了什么
编辑
log(jObejctArray)输出为(数组中有2个obejct):
淘汰观测值不是简单的字段,而是函数。函数不由JSON.stringify处理。通过使用addtojson方法指定自定义序列化程序来覆盖默认的字符串化行为(这将由JSON.stringify调用) 尝试将其添加到您的模型中:
self.toJSON = function() {
var result = {};
result.Name = ko.utils.unwrapObservable(self.Name);
...
/// you could either iterate over the fields with `for .. in`
return result;
}
你能先做这个
console.log(jObjectAray)
并告诉我们你是什么吗getting@al0neevenings请检查我的编辑,而不是创建我使用的内置ko.toJson的self-toJson函数,但我仍然在服务器上获得相同的空数组,我放置console.log(jObjectArray)
我的编辑中的输出请看一看,你试过我写的东西吗?
[
{"ShowHide":false,"Id":"8c4c470d-2b25-4070-8d3e-e307e9d49107",
"Name":"Menu-1","CourseName":"course-1","Sequence":1,
"CourseOptions":{"MenuId":"8c4c470d-2b25-4070-8d3e-e307e9d49107",
"Options":[],"errors":["Can`t left options list empty","Can`t insert empty value."],
"Errors":["Can`t left options list empty","Can`t insert empty value."]},
"errors":[],"Errors":[]},
{"ShowHide":false,"Id":"3da9cbc0-9db8-4297-8245-351caaec9f08",
"Name":"Menu-2","CourseName":"course-2","Sequence":"2",
"CourseOptions":{"MenuId":"3da9cbc0-9db8-4297-8245-351caaec9f08",
"Options":[],"errors":["Can`t left options list empty","Can`t insert empty value."],
"Errors":["Can`t left options list empty","Can`t insert empty value."]},
"errors":[],"Errors":[]}
]
self.toJSON = function() {
var result = {};
result.Name = ko.utils.unwrapObservable(self.Name);
...
/// you could either iterate over the fields with `for .. in`
return result;
}