欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-04-28 23:49:00
...

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

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

还有的建议传字符串后台格式化或解析,也有专门写一个切面程序修改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; }
}
看看实际运行的结果:
asp.net MVC接收前端传递的复杂json对象的简单处理方法
这里需要特别注意的一点就是,.接收对象本身字段可以跟json不完全对应,这点大家都知道,但里面的列表对象,却必须完全对应!

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

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

相关标签: ajax