mvc3 jquery post 复杂json

先吐槽微软做的东西,都是看起来简单方便,实际完全不能用


比如我用jquery post一个json数据到后台,后台一个类接收

var data = {a:1,b:2,c:3}

 $.ajax({
            url: "control",
            type: "POST",
            data: data
            dataType: "json",
            success: function (data) {
                alert(data);
            }
        });

后台

control(data a)

{

//这里就可以接收传过来的a了

}

你以为屌炸天了,可是如果是这样

data = [{a:1,b:2},{a:3,b:4}]

或者是

data = {a:1,b:[{c:3},{c:4}]}

后台就完全接收不到啦,微软这货只能实现简单的一级json数据


对于复杂json只有一种相对方便的方法,就是

 $.ajax({
            url: "AddInquiryFollow",
            type: "POST",
            data: JSON.stringify(data),//用一个专有方法把json变成字符串
            dataType: "json",//完全可以不用,但如果用了json,如果服务端返回的数据不是json,则会报错
            success: function (data) {
                alert(data);
            }
        });

后台

 string s = Request.Form.ToString();
            JavaScriptSerializer jss = new JavaScriptSerializer();
            IList<ReserveVoDto> sth = jss.Deserialize<IList<ReserveVoDto>>(HttpUtility.UrlDecode(s)); //用JavaScriptSerializer类把字符串转成任意类型


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值