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

前端之家收集整理的这篇文章主要介绍了javascript – 将数组传递给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";
}

传递数据存在问题.你能帮助我如何将它传递给阵列吗?

解决方法

在JavaScript中尝试正确的JSON表示法
var objList = new Array();
objList.push(new Array("a","b"));
objList.push(new Array("a","b"));

   $.ajax({
       type: "POST",url: "copyproduct.aspx/SaveDate",data: "{'data':'" + JSON.stringify(objList) + "'}",success: function (msg) {
            alert(msg.d);
       }
   });

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

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

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

原文链接:https://www.f2er.com/ajax/156824.html

猜你在找的Ajax相关文章