无法使用jQuery Ajax post方法调用UpdateIt
中显示的Default.aspx.cs
方法。
在Default.aspx中:
function ActionComplete(args) {
var ganttRecord = args.data; if (args.requestType === 'save') {
$.ajax({
type: "POST",
url: "Default.aspx/UpdateIt",
data: ganttRecord,
dataType: "json",
success: OnSuccess,
failure: function () {
alert("Fail");
}
});
}
} function OnSuccess() {
alert("Pass");
}
在Default.aspx.cs中:
[WebMethod]
public static void UpdateIt(TaskData record)
{
Default sample1 = new Default();
sample1.Update(record);
}
请帮助我...
答案 0 :(得分:1)
这是什么?数据:ganttRecord
应该是这样的,
data: '{"param" ,"value"}',
ADD THIS
JSON.stringify({'ganttRecord'})
contentType: "application/json; charset=utf-8",
更改
public static void
要
public static string
答案 1 :(得分:1)
最后我开始工作了。
以下是代码隐藏或服务器端代码。
[WebMethod]
public static string UpdateIt(TaskData record)
{
Update(record);
return "done";
}
public static void Update(TaskData r)
{
// Write code to handle whatever you need.
}
注意: Update
方法必须为static
,因为它需要从static
方法调用。此外,您不需要创建page
类的实例,例如Default
,然后调用此类Update
方法 - sample1.Update(record);
。因为您可以直接拨打Update
,因为它位于Default.aspx.cs
。这就是为什么我在Update(record)
内使用了UpdateIt(TaskData record)
。
假设 TaskData
具有以下结构。
public class TaskData
{
public int id { get; set; }
public string name { get; set; }
}
接下来,仔细查看JS代码。
var tskmgr = { 'record': {"id":"2" , "name": "ajax is happy"} };
$.ajax({
type: "POST",
url: "Default.aspx/UpdateIt",
data: JSON.stringify(tskmgr),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
// alert(data.d);// this will show alert as "done". Check serverside code for more detail
console.log(data);
},
failure: function (a,b,c) {
alert("Fail");
}
});
看一下JS结构,record
是参数名,我首先使用它,然后参数值是对象所以,我使用了具有必需属性的对象,然后我使用了JSON.stringify
来将它们发送到服务器端。
希望这对你有用。