$each使用匿名对象ajax传递

ajax传页面数据给控制器  说到底这些数据也是 更改数据库 也就是model的处理

说白了ajax就是个打工的把model要用的参数运输给控制器方法罢了,但是js又不能用类里面的model对象

所以 匿名对象就是js层面的model  可以更好的理解为模拟model对象,来让ajax进行运输

在cshtml与控制器中ajax传参的时候 难免会传一个集合对象之类的多数据
这些参数传到控制器大多是转换成listmodel然后去增删改,所以匿名对象
可以很好的处理这种情况。

注意的是匿名对象的属性值一定匹配真实model的属性
这样才能做到很好的映射

主要是运用var 匿名

var model={};  对象

var list=[];集合

list.push(model);将对象加入集合中


页面处理:
var Listpackage = [];//匿名模拟从表 团对象集合
                $("#PackageList span").each(function () {
                    var packages = {}
                    var cls = $(this).attr("class");
                    if (cls == "checked") {

                        packages.PackageId = $(this).children(0).attr("id");
                        packages.PackageCode = $(this).children(0).attr("data-code");
                        Listpackage.push(packages);
                    }

                });
                if (Listpackage.length > 0) {
             //第一种写法
                    var List = [];//增加或修改 匿名模拟从表 数据对象集合 属性要与数据库表属性匹配以便映射
                    var datalist = $('input[name="AddorUpData"]');
                    $(datalist).each(function (i, v) {
                        //每一个对象中属性赋值
                        var inventorys = {}
                        inventorys.Id = $(v).data("id");
                        inventorys.PackageDate = $(v).data("datetime");
                        inventorys.TotalRoomInventory = $(v).data("total");
                        inventorys.Airline = $(v).data("airline");
                        inventorys.Gateway = $(v).data("gateway");
                        List.push(inventorys);

                    });
//第二种写法
 var $deals = $('[name="dealType"]:checked');
 $.each($deals, function (i) {
        var deals = {}
        var deal = $deals.eq(i);
        deals.Id = deal.data('dealid');
        deals.OptionalTourId = deal.data('opid');
        deals.TypeId = deal.val();
        option.optionalDealTypes.push(deals);
    });

                    $.ajax({
                        url: "/AffordableWorld/PackageInfo/AddorUpSpecialLIst",
                        type: "POST",
                        traditional: true,
                        data: {
                            "Planid": Planid,
                            "title": title,
                            "active": active,                                  
                            "package": JSON.stringify(Listpackage),
                            "list": JSON.stringify(List),
                            "adminKey": $("#hiddKey").val()
                        },
                        success: function (result) {
                            alert(result);
                            location.href = "PackageShareInventory?adminKey=" + $("#hiddKey").val();
                        }
                    });
控制器:
  //获取匿名对象  然后json反序列化成真正的对象list
       string list = Request["list"];//列表相关内容           
     
       List<TourPackage_SpecialInventoryData> inventoryList = JsonConvert.DeserializeObject<List<TourPackage_SpecialInventoryData>>(list);

       
JSON.stringify将结果呈现为{"a":"A"}小json对象
JSON.parse将结果呈现为{a:"A"}


 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值