2016-08-03 10 views
1

Ich möchte mit serialize Formulardaten die Liste der Datenobjekts abzubilden mein Backend ist .Net und ich habe eine Modellklasse den ParameterAnfügen Liste von Datenobjekt serialisierte Form

Hier ist meine jQuery-Objekt

zur Karte
var MultiAssignGarageCampaign = []; 

    var obj = {}; 

    obj.GarageID = 15; 
    obj.CampaignID = 8; 

    MultiAssignGarageCampaign.push(obj); 

Hier ist meine ajax-Request

var data = { 
    'MultiAssignGarageCampaign' : MultiAssignGarageCampaign 
}; 

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

$.ajax({ 
    type: 'post', 
    url: '/Booking/Create', 
    data: data ,   
    dataType: 'json' 

}).done(function() { 
    $(this).addClass("done"); 
}); 

Hier Modell mein Backend

public class BookingViewModel 
    { 

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

} 

Wenn ich die Abfrage harter Code wie folgt funktioniert es

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

Müssen Sie 'MultiAssignGarageCampaign' auch nicht serialisieren? – ediblecode

+0

Ihr Objekt muss in einem speziellen Format vorliegen. 'Wenn das übergebene Objekt in einem Array ist, muss es sich um ein Array von Objekten in dem Format handeln, das von .serializeArray()' zurückgegeben wird. Überprüfen Sie es [hier] (http://api.jquery.com/jquery.param/). – springrolls

+0

Wie sieht Ihr Server-Aktionsmethodenparameter aus? Was ist in deiner Form? – Shyju

Antwort

1

Nur eine Vermutung, aber Sie sind econding Daten zweimal:

  1. ersten jQuery mit param
  2. Sekunden jQuery mit ajax

Ich denke, es wird gut funktionieren, indem Sie die serialisierte dekodieren Daten erhalten von jQuery param wie:

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

vielen Dank broo seine Arbeits – LittleDragon

+0

seine die Liste der Objekt von Back-End-Seite zu schaffen, aber die Daten werden nicht mit dem Objekt :( die Frage zugeordnet ist es, die Parameter wie folgt MultiAssignGarageCampaign Erstellen [0] [GarageID] = 44 & Es sollte MultiAssignGarageCampaign [0]. [GarageID] = 44 & sein, um die Daten zuzuordnen – LittleDragon