我一直在为此工作了3个小时并放弃了。 我只是简单地尝试使用jQuery将数据发送到一个asp.net web方法。 数据基本上是一堆键/值对。所以我试图创建一个数组并添加对该数组。成功发送JSON对象到asp.net WebMethod,使用jQuery
我的WebMethod(aspx.cs)看起来是这样的(这可能是错误的,我建立在JavaScript什么,我只是不知道):
[WebMethod]
public static string SaveRecord(List<object> items)
.....
这里是我的JavaScript示例:
var items = new Array;
var data1 = { compId: "1", formId: "531" }; var data2 = { compId: "2", formId: "77" }; var data3 = { compId: "3", formId: "99" }; var data4 = { status: "2", statusId: "8" }; var data5 = { name: "Value", value: "myValue" }; items[0] = data1; items[1] = data2; items[2] = data3; items[3] = data4; items[4] = data5;
Here is my jQuery ajax call:
var options = {
error: function(msg) {
alert(msg.d);
},
type: "POST",
url: "PackageList.aspx/SaveRecord",
data: { 'items': items },
contentType: "application/json; charset=utf-8",
dataType: "json",
async: false,
success: function(response) {
var results = response.d;
}
};
jQuery.ajax(options);
我得到的错误 - Invalid JSON primitive: items.
-
所以...如果我这样做:
var DTO = { 'items': items };
,并设置这样的数据参数:
data: JSON.stringify(DTO)
然后我得到这个错误:
Cannot convert object of type \u0027System.String\u0027 to type \u0027System.Collections.Generic.List`1[System.Object]\u0027
将您的web方法更改为接受普通的旧Object,然后查看该对象的具体内容,然后在Web方法中进行投射和处理。 – 2009-07-18 02:01:02
虽然问题在于,您正在使用webmethods,但未使用为您自动生成的JavaScript代理类? – 2009-07-18 02:02:23
感谢科里,我最初改变了网络方法接受一个普通的对象,这帮助我找出了期望。谢谢! – 29er 2009-07-20 04:21:10