在我的视图模型中,我有以下JS对象,其中包含可观察值
var COAData = {
ACCOUNT_CODE: self.ACCOUNT_CODE,
ACCOUNT_NAME: self.ACCOUNT_NAME,
ACCOUNT_DESCRIPTION: self.ACCOUNT_DESCRIPTION,
OPENING_BALANCE: self.OPENING_BALANCE,
ACCOUNT_DATE: self.ACCOUNT_DATE,
MAIN_ACCOUNT: self.MAIN_ACCOUNT,
SUB_ACCOUNT: self.SUB_ACCOUNT,
CONTROLL_ACCOUNT: self.CONTROLL_ACCOUNT,
SUBSIDERY_ACCOUNT: self.SUBSIDERY_ACCOUNT,
ACCOUNT_TYPE: self.ACCOUNT_TYPE,
VOUCHING_ACCOUNT: self.VOUCHING_ACCOUNT
};
我正在使用跟随ajax函数将上述JS对象作为JSON字符串发送到MVC中的控制器,以将数据保存到数据库中。
self.submitCOA = function () {
$.ajax(
{
type: "post",
url: "/ChartOfAccounts/Create",
contentType: "application/json",
dataType: "json",
data: ko.toJSON(COAData),
success: function (data) {
alert("New Accoungt with Account #" + self.ACCOUNT_CODE(data.ACCOUNT_CODE) + "added successfully");
//GetChartOfAccounts();
},//success function end
error: function (error) {
alert(error.status + "<!----!>" + error.statusText);
}//error function end
}
);//ajax function end
};
在调试时,我开始知道ko.toJSON没有将JS对象(COAData)转换为JSON字符串。而是将空字符串传递给控制器
任何帮助?
答案 0 :(得分:0)
尝试使用ko.toJS
而不是ko.toJSON
,如果self.ACCOUNT_CODE
是可观察的,您应该写self.ACCOUNT_CODE()
等等(使用()
)。