1

我需要将一个 js 多维数组(在编译时不知道维度)传递给我在 c# 中的代码隐藏,我通过以下方式完成了此操作:

var AdjustItems = ""; //My string variable to store the array separated with '|' and '-'
for (var i = 0; i < adjusts.length; i++) { //adjusts is my js array
    AdjustItems += adjusts[i].Motive + '|' + adjusts[i].Amount.toFixed(2).toString() + '-';
}
if (AdjustItems != "") {
    AdjustItems = AdjustItems.substring(0, AdjustItems.length - 1);
}
g('arrAdjust').value = AdjustItems; //arrAdjust is my hidden input.

有没有另一种方法可以做到这一点,我可以得到数组,就像一个数组,而不是像 c# 中的一个字符串?

4

1 回答 1

2

有没有另一种方法可以做到这一点,我可以得到数组,就像一个数组,而不是像 c# 中的一个字符串?

客户端和服务器之间通信的唯一方法是使用字符串。因此,您必须使用类库JSON来在客户端和服务器之间传递复杂的变量。

您可以使用 javascript 的内置 JSON库将您的数组转换为字符串。这会将您的示例更改为以下内容:

g('arrAdjust').value = JSON.stringify(adjusts);

然后,使用 C#JSON解析库将其转换为服务器端的数组。这个stackoverflow 问题可以帮助您使用 C# 和解析 JSON。

于 2012-07-24T13:59:49.910 回答