Javascript 将数组从jQueryAjax传递给代码隐藏

Javascript 将数组从jQueryAjax传递给代码隐藏,javascript,jquery,asp.net,ajax,Javascript,Jquery,Asp.net,Ajax,我必须将二维数组传递给asp.net中网页代码隐藏处编写的page方法。我有一个变量objList,作为二维数组。我使用了下面的代码来实现这一点,但没有成功,并且没有调用page方法 JAVASCRIPT function BindTable(objList) { $.ajax( { url: "CompCommonQues.aspx/SaveData", contentType: "application/json; charset

我必须将二维数组传递给asp.net中网页代码隐藏处编写的page方法。我有一个变量
objList
,作为二维数组。我使用了下面的代码来实现这一点,但没有成功,并且没有调用page方法

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";
}

传递
数据时出现问题。您能帮助我如何将其传递给数组吗?

尝试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()]
公共静态字符串保存日期(字符串数据)
{
JavaScriptSerializer json=新的JavaScriptSerializer();
List mystring=json.Deserialize(数据);
返回“已保存”;
}

我必须反序列化到字符串数组的通用列表,因为您无法反序列化到字符串(检查:)

调试代码时Web方法未命中。代码隐藏函数中需要进行哪些更改。您正在传递一个字符串,如:{data:[[“a”,“b”],[“a”,“b”],[“a”,“b”]}。因此,您需要将参数从字符串(,)更改为字符串,并使用System.Web.Script.Serialization.JavaScriptSerializer反序列化为字符串(,)。我会计算出这个例子。我已经按照你的建议修改了代码,创建了数组,但代码隐藏方法仍然不起作用。你复制了代码吗?你在用Firebug吗?你能看到“网络”>“XHR”下显示的信息吗?我已经在我的项目中测试了它,它正在工作。错误是
内部服务器错误
在post部分
{data:[[123”,“1”,“1”,“153”,“2”,“123”,“1”,“1”,“123”,“1”,“1”,“153”,“2”,“1”,“1”,“1”,“1”,“2”,“123”,“1”,“1”,“2”,“1”,“1”,“1”,“1”,“1”,“2”,“2”,“2”,“1”,“1”,“1”,“1”,“1”,“2”,“2”,“2”,“2”,“2”,“3”,“1”,“1”,“1”,“1”,“1”,“1”,“1”,“1”,“1”,“1”,“1”,“1”,“1”,“1”,“1”,“2”,“2”,“2”,“2”,“2”,“2”,“2”,“2”,“2”,“2”,“2”,“2”,“2”,“2”,“1”,“1”,“1”,“1”,“1”,“
[WebMethod()]
public static string SaveDate(string data)
{
    JavaScriptSerializer json = new JavaScriptSerializer();
    List<string[]> mystring = json.Deserialize<List<string[]>>(data);
    return "saved";
}