我正在尝试使用jQuery调用PageMethod,如下所示:
[WebMethod]
public stataic string WebMethod(PostData data)
{
//DO WORK
return "a";
}PostData类如下:
public class PostData
{
public string Guid{get;set;}
public string Action{get;set;}
public string Id{get;set;}
}我从jQuery中调用方法,如下所示:
$.ajax({
type="POST",
url: 'url',
data: JSON.stringify(b),
contentType: "application/json;charset=utf-8",
dataType: "json",
success: function (msg) {
var t = $(c).html();
$(c).html(t + "<br/>" + $.evalJSON(msg.d));
},
error: function (x, y) {
var t = $(c).html();
$(c).html(t + "<br/>" + $.evalJSON(x.responseText).Message);
}
});其中b类似于:{"PostData":{"Guid":"b61dce32-690b-4409-b51a-a6012462e54e","Action":"Testing","Id":"3"}}
我得到了这个错误:
Invalid web service call, missing value for parameter: 'data'.如果我不调用JSON.stringyfy,我会得到这个错误:
Invalid JSON primitive: PostData.我也尝试过这个{"Guid":"b61dce32-690b-4409-b51a-a6012462e54e","Action":"Testing","Id":"3"},但还是得到了
Invalid JSON primitive 'Guid'或
Invalid web service call, missing value for parameter: 'data'.这取决于我是否调用JSON.stringify。
我也试过,
[WebMethod]
public static string WebMethod(string data)但是找不到地方。
发布于 2011-02-10 16:05:37
JSON中的第一个分层对象名称应该与您的webservice参数名称相同。
{"data": {"Guid":"b61dce32-690b-4409-b51a-a6012462e54e","Action":"Testing","Id":"3"} }发布于 2011-02-10 16:01:44
尝尝这个,
var params = {"PostData":{"Guid":"b61dce32-690b-4409-b51a-a6012462e54e","Action":"Testing","Id":"3"}};
var yourdata = jQuery.param(params); 经过
你的数据
作为您的数据而不是JSON.stringify(b)。
https://stackoverflow.com/questions/4954628
复制相似问题