繁体   English   中英

大量传递数组值以使用c#进行代码编写

[英]passing array values in bulk to code behind using c#

我需要将值传递给从客户端到服务器端的代码后面,我该怎么做

发送的数据通常需要是一个键值对。 我认为仅发送字符串是行不通的。 数据变量通常需要是一个对象数组,每个对象都有两个键: namevalue我通常有两种方式

方法1:该方法将整个数组序列化为一个字符串(类似于您尝试的字符串),并将其发送出去。 这样做的一个很大的缺点是,如果数组太长,它将发送一个很长的字符串,该字符串可能会超过限制(然后需要从Web配置中增加限制)。 但是,这样做的一大优点是您可以将对象直接序列化为ac#对象。

方法是将行data: JSON.stringify({ arr: values })更改为data: [{name:"values", value:JSON.stringify(values)}] ,然后在c#中访问values字符串并反序列化它。 在C#中,您需要有类似以下的代码:

JavaScriptSerializer js =新的JavaScriptSerializer(); MyObject对象= js.Deserialize(Request.Params('values'));

现在,您可以使用类型为MyObject的对象。 请注意,为了能够使用它,您将需要c#对象和js对象具有完全相同的格式。 请注意,在这种情况下,MyObject将是某些东西的数组,因此需要将其替换为以下内容: object = js.Deserialize<string[]>(Request.Params('values'))

方法2:此方法可以将数组中的每个js项作为一个单独的项发送出去。 在js代码中,添加var i = 0; $ .ajax({行。然后将data: JSON.stringify({ arr: values })替换为data: values.map(v => ({name: i++, value: v}))

现在,在您的C#代码中,您可以将数组的每个元素都访问为Request.Params("0")Request.Params("1") ,依此类推...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM