asp.net MVC接收前端传递的复杂json对象的简单处理方法

标签: asp.net  mvc  json  复杂对象  提交

有时候,我们需要从页面传递一组数据到后台,但同时又需要传递几个独立的参数,这种情况很伤脑筋。

网上有各种各样的说法和办法,但都不好用,或没有说到关键的地方。

还有的建议传字符串后台格式化或解析,也有专门写一个切面程序修改mvc自带的格式化方法的,等等,都不是想要的东东。

我需要的是一个简简单单,不做任何改动就能实现的方法。

今天遇到这个问题,反复调试了好多次,终于找到了最简单的方法,什么都不用改,直接传递,直接接收大笑

现在记录下来,给大家参考参考:

一. 前端js提交方法:

    function submit(group, quarter) {//这里只是个例子,不要关注业务,只看提交的数据格式就好
        var list = $('#tttt').find('.on'),
            dt = { 'Quarter': quarter, 'Group': group, 'Streses': [] };
        for (var i = 0; i < list.length; i++) {
            var t = $(list[i]),
                v = parseInt(t.attr('idx') || 0, 10),
                p = t.parent().parent(),
                title = p.children().first().html();
            dt.Streses.push({ 'Name': title, 'Level': v });
        }
        myAjax('/Stress/save', dt, null, function (re) {
            if (re.Code == 'Success') {
                location.href = 'yyyyy';
            }
        });
    }

二.后台action接收方法:

        [HttpPost]
        public ActionResult Save(StressModel stress)
        {
            //do something...
            return View(ReMsg);
        }


三.接收参数对象定义:

    public class Stress
    {
        public string Name { get; set; }
        public int Level { get; set; }
    }
    public class StressModel
    {
        public int Quarter { get; set; }
        public string Group { get; set; }
        public List<Stress> Streses { get; set; }
    }

看看实际运行的结果:


这里需要特别注意的一点就是,.接收对象本身字段可以跟json不完全对应,这点大家都知道,但里面的列表对象,却必须完全对应!

我之前就是卡在这里,导致各种不理解,各种不成功。。。

其实一旦找到规律,真的是很简单,对不对

版权声明:本文为foren_whb原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/foren_whb/article/details/78893588

智能推荐

[java][事务]tcc事务实战学习过程

学习项目:https://github.com/14251104246/spring-cloud-rest-tcc 下载源码,进入源码目录运行:mvn clean package Docker Compose运行 docker-compose -f infrastructure-compose.yml up -d docker-compose -f basic-ms-compose.yml up ...

[学习记录,]Mybatis入门

环境: Eclipse 2019 Tomcat 9.0 jdk1.8 开搞 首先创建工程 结构如下 导入Jar包 可在mybatis官网下载 http://www.mybatis.cn/82.html 配置文件mybatis-config.xml 事务管理有两种:JDBC和MANAGED JDBC: MANAGED 数据源类型:UNPOOLED、POOLED、JNDI 创建实体类文件User.ja...

运用for语句来判断数组中值得大小

总结: 1将if语句与数组联合起来判断输入中各组中的最大最小值; 2注意:定义的数组数量是躲多少就要输入多少组数据,少输入就无法输出;...

Bridging signals

Bridging signals Time Limit: 1000MSMemory Limit: 10000K Total Submissions: 10926Accepted: 5982 Description 'Oh no, they've done it again', cries the chief designer at the Waferland chip factory. Once ...

一天一大 leet

一天一大 leet 题目(难度:困难): 示例 抛砖引玉 官方答案 高手在民间 菜鸡的自白 20200606 题目(难度:困难): 给定一个未排序的整数数组,找出最长连续序列的长度。 要求算法的时间复杂度为 O(n)。 示例 示例 抛砖引玉 要求算法的时间复杂度为 O(n),即限制了只能循环一次; 先对数组排序 循环数组记录后一个元素等于前一个元素+1或者等于前一个元素的数量 满足条件++,不然重...

猜你喜欢

Tensorflow实现的CNN文本分类

https://blog.csdn.net/somtian/article/details/69359498 原博文, github 在这篇文章中,我们将实现一个类似于Kim Yoon的卷积神经网络语句分类的模型。 本文提出的模型在一系列文本分类任务(如情感分析)中实现了良好的分类性能,并已成为新的文本分类架构的标准基准。 本文假设你已经熟悉了应用于NLP的卷积神经网络的基础知识。 如果没有,建议...

JDBC新手入门教程

开发工具:idea 数据库:mysql jar包:junit-4.10 mysql-connector-java-8.0.18 junit-4.10下载 mysql-connector-java-8.0.18下载 注意1:jdbc的驱动因为使用的是mysql-connector-java-8.0.18,所以为(“com.mysql.cj.jdbc.Driver”),而不是(...

Lua 排序 table.sort

    正如C#中有Array.Sort(),lua中也有自己的排序方法即table.sort(table,function)。     lua中的排序默认是从大到小的排序;     传入一个方法参数,可以使排序从小到大; 打印结果:  ...

SURF算法简述及Python标记SURF特征检测实践

目录 一、SURF算法 1.算法简介 2.SURF与SIFT的具体差异 二、Python代码实践 1.测试环境 2.测试代码 3.核心函数 4.测试结果 一、SURF算法 1.算法简介 SURF(Speeded-Up Robust Features)加速稳健特征,是一种稳健的局部特征点检测和描述算法。 SURF是对SIFT算法的改进,该算子在保持 SIFT 算子优良性能特点的基础上,同时解决了 S...

Selenium3自动化测试——19.读取数据文件

1. 实现目标 在测试与开发中,经常需要对文件进行各种读取操作。这里介绍针对txt、csv、xml、json文件的读取。 2. 读取TXT文件 2.1 user_info.txt文件 2.2 读取txt文件.py 2.3 实现结果 3. 读取csv文件 3.1 user_info.csv  这里要注意,csv文件本身打开是utf-8的,而不是乱码 3.2 读取csv文件.py 这里,针对...