Javascript 使用knockout和ajax调用更新数据
我正在进行ajax调用以更新数据,如下所示:Javascript 使用knockout和ajax调用更新数据,javascript,json,knockout.js,Javascript,Json,Knockout.js,我正在进行ajax调用以更新数据,如下所示: self.UpdateStatus = function () { $.ajax({ type: "POST", url: 'Test.aspx/UpdateStatus', data: ko.toJSON({ data: self.Goals }), contentType: "application/json; charset=utf-8", success
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是我的可观察数组。这是我的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原语:
我在这里感到困惑,是应该在这里传递数组还是传递变量(在我的例子中不止一个)。
您从哪里收到此消息的?在客户端还是服务器上?请提供任务数组的结构,有哪些对象?您的目标类中是否有statusVal属性?如果没有,您将有一个例外。理想情况下,json字符串应该包含与您的目标类的属性名同名的键。不要将json字符串化!生成的对象不是您认为的对象。此处代码更改为ko.JSON并传递目标数组。但如何知道哪个索引正在更新?