将数据对象的列表附加到序列化表单

本文关键字:序列化 表单 列表 数据 对象 | 更新日期: 2023-09-27 18:00:05

我想用序列化表单数据映射数据对象的列表,我的后端是.Net,我有一个Model类来映射参数

这是我的jQuery对象

var MultiAssignGarageCampaign = [];
    var obj = {};
    obj.GarageID = 15;
    obj.CampaignID = 8;
    MultiAssignGarageCampaign.push(obj);

这是我的ajax请求

var data = {
  'MultiAssignGarageCampaign' : MultiAssignGarageCampaign
};
data = $form.serialize() + '&' + $.param(data);
$.ajax({
    type: 'post',
    url: '/Booking/Create',
    data: data ,         
    dataType: 'json'
}).done(function () {
    $(this).addClass("done");
});

这是我的后端型号

public class BookingViewModel
    {
public IList<GeneralCampaign> MultiAssignGarageCampaign { get; set; } 
}

当我像这样硬编码查询时,它可以工作

//data = $("#frmCreateBooking").serialize() + '&MultiAssignGarageCampaign[0].GarageID=15&MultiAssignGarageCampaign[0].CampaignID=8';

将数据对象的列表附加到序列化表单

只是猜测,但您正在两次刷新数据:

  1. 首次使用jQuery param
  2. 第二次使用jQuery ajax

我认为通过解码从jQuery param获得的序列化数据,它会很好地工作,比如:

data = $form.serialize() + '&' + decodeURIComponent($.param(data));