gpt4 book ai didi

c# - 通过 jquery post 将字符串数组传递给 ASP.net

转载 作者:行者123 更新时间:2023-11-30 21:18:25 24 4
gpt4 key购买 nike

我有一个包含 3 个输入元素的表,它们代表顺序、名称和值。用户可以添加一行 3 个输入,以根据需要添加任意数量的这些数据集。

为了完成输入的动态添加,我使用了 jquery 的克隆方法。

这很好用,我能够遍历每个值并获取值,但是我真正的痛苦是当用户输入所有数据时我想将该数据传递给 asp.net 页面通过 jQuery 的 post 方法。我如何传递一个字符串数组,以便将此格式发送到 asp.net 页面,完成后我如何解析它的 asp.net 端的数据。

所需的数据格式:

["名称|链接|订单", "名称|链接|订单", "名称|链接|订单"]

到目前为止的 jquery 代码:

$("#saveBtn").click(function (e) {

e.preventDefault();

$("#addPanel").slideUp(300);

//Perform Save Operation
var saveString = "";

$("#addTable tbody>tr").each(function () {

var o = $(this).find(".hsaorder").val();
var n = $(this).find(".hsaname").val();
var l = $(this).find(".hsalink").val();

saveString += n + "|" + l + "|" + o ;


});

////// Create Array here or some other method?


$.post("/modules/H/Modify.aspx", { OBVIOUSLY SOMETHING GOES HERE});

// Remove all but top table element to return to original state
$("#addTable tbody>tr").not("#addTable tbody>tr:first").remove();


});

最佳答案

赛斯,这些连接像“|” + 东西 + “|”这真的不是一个好习惯。尽量避免它,我保证你会在以后节省很多时间。

看看我是怎么做到的:

首先,在客户端将所有内容放入真正的 JSON 字符串中,如下所示:

    var saveAr = [];

$("#addTable tbody>tr").each(function () {

var o = $(this).find(".hsaorder").val();
var n = $(this).find(".hsaname").val();
var l = $(this).find(".hsalink").val();

saveAr.push({ order: o, name: n, link: l });
});

$.post("/modules/H/Modify.aspx", { changes: JSON.stringify(saveAr)});

然后你需要在服务器端以某种方式解析它。最好的做法是安装 JSON.Net dll(只需用谷歌搜索),然后解析它:

var rows = JArray.Parse(Request["changes"]);
foreach (var row in rows) {
var order = row.Value<string>["order"];
var name = row.Value<string>["name"];
var link = row.Value<string>["link"];

// do something with it
}

您可能在旧版本的 IE 中遇到 JSON.stringify 问题,但可以通过应用此补丁修复:https://github.com/douglascrockford/JSON-js

警告:我没有编译上面的代码,所以不要 100% 相信这一点,只是想一想。

关于c# - 通过 jquery post 将字符串数组传递给 ASP.net,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4259824/

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