以下のようにデータを更新するために ajax 呼び出しを行っています。
self.UpdateStatus = function () {
$.ajax({
type: "POST",
url: 'Test.aspx/UpdateStatus',
data: ko.toJSON({ data: self.Goals }),
contentType: "application/json; charset=utf-8",
success: function (result) {
var resHTML = result.d;
if (resHTML != "") {
alert(result.d);
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(textStatus);
alert(errorThrown);
}
});
return true;
};
ここで、Task は観測可能な配列です。これは私のタスク配列です。
function Goals(d) {
this.GoalID = ko.observable(d.GoalID);
this.Goal = ko.observable(d.Goal);
this.Note = ko.observable(d.Note);
this.Status = ko.observable(d.Status);
}
私の更新メソッドヘッダーは以下のようなものです
public static bool UpdateStatus(Goals[] goal)
//query to update status of a goal
string sqlUpdateStatus = @"UPDATE M_USERGOAL_INFO
SET STATUS = true
WHERE PK_ID = " + **goal[].GoalID**;
ゴールは私のクラス名です。しかし、それは私にエラーを示しています(クライアント側): 内部サーバーエラー メッセージ ":"無効な JSON プリミティブ: ここでその配列または変数 (私の場合は複数) を渡す必要があるかどうか、ここで混乱しています。