внутри моей модели представления у меня есть следующий объект 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. Вместо этого пустая строка передается в contrller
любая помощь?
Попробуйте использовать ko.toJS
вместо ko.toJSON
, также если self.ACCOUNT_CODE
является наблюдаемым, вы должны написать self.ACCOUNT_CODE()
и т.д. (С ()
).