将数组传递给jquery ajax后面的代码

我必须将二维数组传递给在asp.net中的网页代码后面编写的页面方法。我有一个变量objList作为二维数组。 我使用以下代码实现此目的但没有成功,并且未调用页面方法。

JAVASCRIPT

 function BindTable(objList) { $.ajax( { url: "CompCommonQues.aspx/SaveData", contentType: "application/json; charset=utf-8", dataType: "json", type: "POST", data: { data: objList }, success: function (data) { //Success code here }, error: function () { } }); } 

代码背后.CS文件

  [WebMethod] public static string SaveData(string[,] data) { string[,] mystring = data; return "saved"; } 

有像JSON.stringify(objList)这样的方法将json数组传递给后面的代码但是无法实现。 一个简单的调用没有数组为我工作喜欢

 data: "{ 'data':'this is string' }", 

并在代码背后

 [WebMethod] public static string SaveData(string data) { string mystring = data; return "saved"; } 

传递data存在问题。 你能帮助我如何将它传递给arrays吗?

在JavaScript中尝试正确的JSON表示法

 var objList = new Array(); objList.push(new Array("a","b")); objList.push(new Array("a", "b")); objList.push(new Array("a", "b")); $.ajax({ type: "POST", url: "copyproduct.aspx/SaveDate", data: "{'data':'" + JSON.stringify(objList) + "'}", contentType: "application/json; charset=utf-8", dataType: "json", success: function (msg) { alert(msg.d); } }); 

在后面的代码中,您可以使用JavaScriptSerializer(System.Web.Script.Serialization)反序列化

 [WebMethod()] public static string SaveDate(string data) { JavaScriptSerializer json = new JavaScriptSerializer(); List mystring = json.Deserialize>(data); return "saved"; } 

我不得不反序列化为字符串数组的通用列表,因为您无法反序列化为字符串(检查: http : //forums.asp.net/t/1713640.aspx/1 )