求助:js数组赋值给asp.net后台的数组!!!!!!

卞卞还是便便 2013-09-24 09:08:28
我前台js有个复杂的数组,装的是object。我需要把这个数组赋值给后台。每个object的每个属性都要赋值。网上说用字符串拼接。。。我想这样会不会太长了。有没有其他的方法。如图:
...全文
464 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
卞卞还是便便 2013-09-24
  • 打赏
  • 举报
回复
引用 10 楼 dongxinxi 的回复:
拼接长点用post方式提交就可以 拼接也不是很复杂啊
var datas = '[';
for(var i=0; i< arr.length; i++){
    datas += '{';
    foreach(var field in arr[i])
       datas += '"' + field + '":"' + encodeURIComponent(arr[i].getAttribute(field)) + '",';
    datas += datas.substr(0, datas.length - 1) + '}';
}
datas += "]";
那个encodeURIComponent我看了看,不太懂啊,是提高安全性?按你这样转成的字符串在后台是用JavaScriptSerializer去反序列化就可以了吧
卞卞还是便便 2013-09-24
  • 打赏
  • 举报
回复
引用 9 楼 sibiyellow 的回复:
不可以处理为json么?
我是菜鸟。。。今天才知道有json。。。还在了解中。。
卞卞还是便便 2013-09-24
  • 打赏
  • 举报
回复
引用 10 楼 dongxinxi 的回复:
拼接长点用post方式提交就可以 拼接也不是很复杂啊
var datas = '[';
for(var i=0; i< arr.length; i++){
    datas += '{';
    foreach(var field in arr[i])
       datas += '"' + field + '":"' + encodeURIComponent(arr[i].getAttribute(field)) + '",';
    datas += datas.substr(0, datas.length - 1) + '}';
}
datas += "]";
你这个是转成json字符串吗?
  • 打赏
  • 举报
回复
拼接长点用post方式提交就可以 拼接也不是很复杂啊
var datas = '[';
for(var i=0; i< arr.length; i++){
    datas += '{';
    foreach(var field in arr[i])
       datas += '"' + field + '":"' + encodeURIComponent(arr[i].getAttribute(field)) + '",';
    datas += datas.substr(0, datas.length - 1) + '}';
}
datas += "]";
天下如山 2013-09-24
  • 打赏
  • 举报
回复
不可以处理为json么?
H_Gragon 2013-09-24
  • 打赏
  • 举报
回复
友情帮顶!
卞卞还是便便 2013-09-24
  • 打赏
  • 举报
回复
引用 5 楼 mmm306306 的回复:
传字符串到后台 "a,b,c,d"; 后台 "a,b,c,d".Split(',')
我这个前台的数组比较复杂,每个索引里都是一个object,每个object都有8个属性。。。。那拼接字符串也太复杂了吧。。。
c02645 2013-09-24
  • 打赏
  • 举报
回复
还是字符串提交到后台吧
<input type="text" id="txt" size="99999" />
    <input type="button" onclick="aaa()" />
    <script>
    function aaa(){
     var a=new Array([['Sony','a0'], ['Samsumg','a1'], ['LG','a2'], ['Vizio','a3'], ['Insignia', 'a4']],[['Sony','b0'], ['Samsumg','b1'], ['LG',21], ['Vizio','b2'], ['Insignia', 'b3']]);
     var bt=','+a.toString()+',';
     document.getElementById('txt').value= bt.replace(/,Sony,/g,',').replace(/,Samsumg,/g,',').replace(/,LG,/g,',').replace(/,Vizio,/g,',').replace(/,Insignia,/g,',');
    }
    </script>
马老虎 2013-09-24
  • 打赏
  • 举报
回复
传字符串到后台 "a,b,c,d"; 后台 "a,b,c,d".Split(',')
卞卞还是便便 2013-09-24
  • 打赏
  • 举报
回复
引用 3 楼 lianghappy123 的回复:
如果说这些数据是插入到数据库里面的话,我觉得可以把它拼成XML格式的字符,在数据库解析插入!
在插入数据库之前要在逻辑层做数据处理的。就是希望传到后台即可。然后经过处理才插入数据库。
卞卞还是便便 2013-09-24
  • 打赏
  • 举报
回复
顶上去!!!!!!!!!!!!!!
卞卞还是便便 2013-09-24
  • 打赏
  • 举报
回复
图片是前台js数组。
卞卞还是便便 2013-09-24
  • 打赏
  • 举报
回复
引用 15 楼 dongxinxi 的回复:
JavaScriptSerializer需要一个相匹配的类型才能反序列化 你可以用第三方的Newtonsoft.Json.dll或者Json.net http://www.cnblogs.com/sbxwylt/archive/2008/12/31/1366199.html
意思就是我要将json反序列化成我自己的一个类对象,就比较麻烦了?搞完就结分了。
  • 打赏
  • 举报
回复
JavaScriptSerializer需要一个相匹配的类型才能反序列化 你可以用第三方的Newtonsoft.Json.dll或者Json.net http://www.cnblogs.com/sbxwylt/archive/2008/12/31/1366199.html
  • 打赏
  • 举报
回复
引用 13 楼 beveil 的回复:
[quote=引用 10 楼 dongxinxi 的回复:] 拼接长点用post方式提交就可以 拼接也不是很复杂啊
var datas = '[';
for(var i=0; i< arr.length; i++){
    datas += '{';
    foreach(var field in arr[i])
       datas += '"' + field + '":"' + encodeURIComponent(arr[i].getAttribute(field)) + '",';
    datas += datas.substr(0, datas.length - 1) + '}';
}
datas += "]";
那个encodeURIComponent我看了看,不太懂啊,是提高安全性?按你这样转成的字符串在后台是用JavaScriptSerializer去反序列化就可以了吧[/quote] 那个提高不了安全性,只是为了更可靠的拼接出json字符串,也可以将用replace('"','\"')转义 实际上值类型的,如float,boolean,int,date等都不应该带引号,并且date类型应该转换成utc格式

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧