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 Streses { get; set; }
}
看看实际运行的结果:
这里写图片描述
这里需要特别注意的一点就是,.接收对象本身字段可以跟json不完全对应,这点大家都知道,但里面的列表对象,却必须完全对应!

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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值