首页 新闻 会员 周边

.net mvc 如何接收js ajax提交的list数据

0
悬赏园豆:30 [已解决问题] 解决于 2019-09-29 14:12

其中的家庭信息是一对多的,一个用户可以有多条家庭成员信息,使用js控制页面html代码实现可以添加多条。 如图所示:

 

采用同一个保存按钮,一个方法提交

前面的基本信息之前是这样传递的:

后台接收方式:

现在 又增加了家庭成员的数据,并且是不固定的多条,想使用list集合接收。

参数传递是这样的了:后台不知道怎么接收

 

如果只有家庭成员的数据:

 

那么后台可以直接这样接收:

 

对于我的需求,求教大神给点建议白

代码小六的主页 代码小六 | 初学一级 | 园豆:12
提问于:2017-12-18 11:04
< >
分享
最佳答案
0

可以这样,使用JS数组存家庭成员信息,ajax传递参数的时候,将数组序列化成JSON字符串,后台接收JSON字符串,再反序列化成泛型集合

收获园豆:30
顾星河 | 大侠五级 |园豆:7173 | 2017-12-18 11:08

现在也是json数组传递的,只是多条数据在一个json数组里面,{"name":"张三","sex":男,"name":"李四","sex":女,},而不是 [{ "name":"张三","sex":男, },{ "name":"李四","sex":女, },] 这样的格式,后台接收json 字符串没法序列化成list

代码小六 | 园豆:12 (初学一级) | 2017-12-18 11:12

@代码小六: 怎么可能无法序列化.....JSON格式对的话,序列化肯定是没问题的  检查下面两点  1.JSON格式  2.反序列化的方法  

顾星河 | 园豆:7173 (大侠五级) | 2017-12-18 11:25

@七芯海棠: 你看我的格式呀,是两条数据,但是js 生成的json 是在一个里面的,不是list那种格式,所以无法格式化

代码小六 | 园豆:12 (初学一级) | 2017-12-18 11:41

@代码小六: 

    $(function () {
        var arr = new Array();
        var info = {
            name: "",
            sex:""
        }
        info.name = "张三";
        info.sex = "男";
        arr.push(info);
        info.name = "李四";
        info.sex = "女";
        arr.push(info);
        console.log(JSON.stringify(arr));
        //输出:[{"name":"李四","sex":"女"},{"name":"李四","sex":"女"}]
    });

写了一个小demo,参考一下  我在浏览器测试了,输出结果就是注释的那段字符串,你把这个作为参数传到后台应该就能解析了

顾星河 | 园豆:7173 (大侠五级) | 2017-12-18 11:53

@七芯海棠: 这样写当然可以,但是我是获取的页面的表单元素,

页面上是动态生成的输入框,点击一下,生成一个,比如第一个生成的id是family[0].FamilyName,第二次是family[1].FamilyName,第三次是family[2].FamilyName,最后form表单获取所有的元素,提交,生成的json 就不是上面你说的那种形式了

代码小六 | 园豆:12 (初学一级) | 2017-12-18 11:58

@代码小六: 能不用表单就不用撒  表单能实现的效果  ajax异步一样能实现   

顾星河 | 园豆:7173 (大侠五级) | 2017-12-18 13:18

@七芯海棠: 说的对

~雨落忧伤~ | 园豆:336 (菜鸟二级) | 2017-12-18 13:31
其他回答(4)
0

主要问题还是json序列化的问题

张林-布莱恩特 | 园豆:108 (初学一级) | 2017-12-18 11:56
0

返回json

~雨落忧伤~ | 园豆:336 (菜鸟二级) | 2017-12-18 13:24
0

合理设置你的表单元素的name属性。

西漠以西 | 园豆:1675 (小虾三级) | 2017-12-18 17:37
0

重写json格式

代码小六 | 园豆:12 (初学一级) | 2019-09-16 15:33
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册