gpt4 book ai didi

jquery - 使用 jquery ajax 将数组传递给 WebMethod 在 asp.net 中不起作用

转载 作者:行者123 更新时间:2023-12-01 01:14:12 27 4
gpt4 key购买 nike

我正在尝试使用 jquery ajax 将所有 gridview 记录发送到 webmethod,但它不起作用。这是我的代码

function Save() {
var TableData = new Array();

$('[id*=GridView1] tr').each(function (row, tr) {
TableData[row] = {
"Sr" : $(tr).find('td:eq(0)').text()
, "RollNo": $(tr).find('.RollNo').val()
, "Name" : $(tr).find('.Name').val()
, "Marks" : $(tr).find('.Marks').val()
}
});
TableData.shift();
$.ajax({
type: "POST",
url: "TestPage.aspx/SaveData",
data: "{Data:'" + JSON.stringify(TableData) + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
alert(msg.d);
}
});
return false;
}

和隐藏代码

  [WebMethod]    
public static string SaveData(List<string> Data)
{
//My Code
return "Success";
}

帮帮我吧……

最佳答案

那一定是抛出了 500 inetrnal server由于类型不匹配而出错:-

 public static string SaveData(string Data)
{
//My Code
return "Success";
}

您正在传递 JSON字符串,因此您应该在服务器端期待相同的结果,然后将其反序列化为 .Net 对象。

更新:

您可以使用JavaScriptSerializer类:-

public static string SaveData(string Data)
{
JavaScriptSerializer json = new JavaScriptSerializer();
List<GridData> mygridData = json.Deserialize<List<GridData>>(Data);
return "Success";
}

您没有通过 List<String>首先,从客户端,您传递一个带有属性的 JavaScript 对象。因此,要将其映射到 .Net 中,您必须定义一个等效的 Type像这样:-

public class GridData
{
public string Sr{ get; set; }
public string RollNo{ get; set; }
public string Name{ get; set; }
public string Marks{ get; set; }
}

关于jquery - 使用 jquery ajax 将数组传递给 WebMethod 在 asp.net 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33009410/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com