我一直在爲此工作了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