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

时间:2016-08-03 13:28:50

标签: c# jquery ajax asp.net-mvc serialization

我想用序列化表单数据映射数据对象列表我的后端是.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 个答案:

答案 0 :(得分:2)

只是一个猜测,但你正在两次发现数据:

  1. 首先使用jQuery param
  2. 使用jQuery ajax
  3. 我认为通过解码从jQuery param得到的序列化数据可以正常工作,如:

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