2016-08-03 9 views
1

私は私のバックエンドが.NETのシリアル化フォームデータとデータオブジェクトのリストをマッピングしたいと私はここで、パラメータに追加リスト

をマッピングするためのモデルクラスを持っているが、私の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'; 
+0

'MultiAssignGarageCampaign'もシリアル化する必要はありませんか? – ediblecode

+0

オブジェクトは特殊な形式でなければなりません。 '渡されたオブジェクトが配列内にある場合、それは.serializeArray()によって返される形式のオブジェクトの配列でなければなりません。それを[こちら](http://api.jquery.com/jquery.param/)で確認してください。 – springrolls

+0

サーバーアクションメソッドのパラメータはどのように見えますか?あなたのフォームには何がありますか? – Shyju

答えて

1

推測で動作しますが、あなたは2倍のデータをecondingされています

  1. 第一、第二
  2. jQueryのparamを使用してjQueryのajax
  3. 使用

シリアライズされたコードをデコードするとうまくいくと思いますjQuery paramから得られたデータは、

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

は、その作業 – LittleDragon

+0

そのバックエンド側からのオブジェクトのリストを作成しますが、データがオブジェクトにマップされていない:( 問題は、それがこの MultiAssignGarageCampaignのようなパラメータを作成している非常に多くのbroo [0] [GarageID] = 44& をありがとうそれは MultiAssignGarageCampaign [0]。[GarageID] = 44& データをマップする必要があります – LittleDragon