2017-11-15 1 views
0

Ich habe ein AnsichtsmodellPassing Daten von Ajax zum Controller in asp.net MVC

public class School 
{ 
    public int SchoolId { get; set; } 
    public int BuildingId { get; set; } 
    public int FloorId { get; set; } 
    public int PlannedBy { get; set; } 

    public IEnumerable<HeadCountPerRoom> HeadCountPerRoom{ get; set; } 
} 

Und mein Controller sieht wie folgt aus:

public JsonResult SaveHeadCount(IEnumerable<School>schoolViewModel,int action) 
{ 
    // my code 
} 

ich die JavaScript-Modell und Ajax geschrieben haben:

function myfuncton() { 
    var HeadCountPerRoom=[]; 
    var MasterEntry=[]; 
    HeadCountPerRoom.push({ 
     Month: month, 
     Year: year, 
     HeadCountId: seatCountID, 
     SeatCount: SeatCount, 
    }); 
    masterEntry= JSON.stringify({ 
     schoolViewModel:{ 
     SchoolId: SchoolId, 
     BuildingId: BuildingId, 
     FloorId: FloorId, 
     PlannedBy: PlannedBy, 
     HeadCountPerRoom: HeadCountPerRoom 
    }, 
    action:3 
}); 

$.ajax({ 
    type: 'POST', 
    contentType: 'application/json; charset=utf-8', 
    url: "../myController/SaveHeadCount", 
    data: masterEntry, 
    success: function (data) { 
     //code. 
    } 
}) 

In der Steuerung bekomme ich null im schoolViewModel Parameter und für der Aktionsparameter Ich bekomme den Wert. Warum bekomme ich null?

+0

Ihre 'masterEntry = JSON.stringify ({ schoolViewModel: { SchoolId: SchoolId, BuildingId: BuildingId, FloorId: FloorId, PlannedBy: PlannedBy Sie sollten Ihr Modell auf Ihrem JS als Array übergeben , HeadCountPerRoom: HeadCountPerRoom }, Aktion: 3 )}; 'ist nicht gültig, dass ein Tippfehler beim Eintippen hier ist? die schließenden Klammern sind nicht korrekt. sie sollten '})' anstatt ''}} sein? –

+0

überprüfen Sie Ihren Code vor dem Einfügen hier. –

+0

das ist ein Tippfehler –

Antwort

0

Sie erwarten eine Liste der Schule und Sie Ihre JS übergeben Sie nur ein Objekt.

schoolViewModel: [ 
         { 
         SchoolId: SchoolId, 
         BuildingId: BuildingId, 
         FloorId: FloorId, 
         PlannedBy: PlannedBy, 
         HeadCountPerRoom: HeadCountPerRoom 
         } 
         ] 
Verwandte Themen