我正在调用Ajax,如下所示
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: 'employerbrowse.aspx/GetData',
dataType: "json",
data: '{ "jsondata":' + jsondata + ',"key":"' + getValue('id') + '"}',
success: function (data) {
callback(data);
},
error: function (error) {
callback(error.responseText);
}
});
调用不会转到Web方法,错误显示为
“消息”:“无效的Web服务调用,缺少参数值: \ u0027obj \ u0027“。`
我无法找出发布数据的问题。 我用Ajax调用的数据值就像
一样{
"jsondata": {
"pagenumber": "0",
"sortColumn": "Name",
"sortDirection": "asc",
"rowPerPage": "10"
},
"key": "PPCrAV0oUGhy1cRdNEiN/ohdzAwD3+Qyyn5ozvhZ1B6STo0KrY+/Vggfnc4v12JS"
}
我在Ajax发布数据时找不到任何错误。
在employeebrowse.aspx.cs页面中的Webmethod我写的如下
[WebMethod(EnableSession = true)]
[ScriptMethod(UseHttpGet = false)]
public static JSONResponse GetData(JSONRequest obj)
{
JSONResponse objJSONResponse = new JSONResponse();
SessionHelper objSessionHelper = new SessionHelper();
return objJSONResponse;
}
我写的JSONRequest类如下
public class JSONRequest
{
public object jsondata;
public string key;
}
如果有任何想法请分享。
感谢。
答案 0 :(得分:0)
尝试像服务器端的类一样创建一个变量,然后尝试这个ajax代码:
Array
(
['S0'] => 0,
['S1'] => 28,
['S2'] => 0,
['S3'] => 6,
['S4'] => 2,
['S5'] = 0
)
我删除了//JSONRequest
var obj = {
jsondata : {
pagenumber: "0",
sortColumn: "Name",
sortDirection: "asc",
rowPerPage: "10"
},
key: "PPCrAV0oUGhy1cRdNEiN/ohdzAwD3+Qyyn5ozvhZ1B6STo0KrY+/Vggfnc4v12JS"
};
//call server side method
$.ajax({
type: "POST",
data: obj,
url: 'employerbrowse.aspx/GetData',
success: function (data) {
conosle.log(data);
},
error: function (error) {
console.log(error);
}
});
,因此您可以像在web方法中使用类参数的形式一样传递参数。