2017-02-17 5 views
0

Alle relevanten Code veröffentlichen:MVC-Modell ist null, wenn json in ASP.Net Kern

//JSON data 
var dataType = 'application/json; charset=utf-8'; 
var data = { 
    FirstName: 'Andrew', 
    LastName: 'Lock', 
    Age: 31 
} 

console.log('Submitting form...'); 
$.ajax({ 
    type: 'POST', 
    url: '/Diary/Save', 
    dataType: 'json', 
    contentType: dataType, 
    data: data, 
    success: function (result) { 
     console.log('Data received: '); 
     console.log(result); 
    } 
}); 


[HttpPost] 
public IActionResult Save([FromBody] Person person) 
{ 
    return Json(person); 
} 



public class Person 
{ 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
    public int Age { get; set; } 
} 

"Person" in der Save-Methode immer null ist. Das sollte funktionieren ... es fühlt sich vielleicht wie ein Einstellungs-Problem an? Muss ich hier Änderungen vorzunehmen:

services.AddMvc(options => 
     { 
     }); 
+0

ich tun dies in der Ajax-Methode .. Daten: JSON.stringify (dataType), dann in der Controller-Aktion nehme ich [FromBody] –

+0

Ich denke, es gibt andere Jiggery, die Sie tun müssen in .net Kern, damit es funktioniert ohne [FromBody] (Ich habe Ihren Vorschlag trotzdem versucht, aber immer noch alle Nullen) – Paul

+0

Sie posten auf '/ Tagebuch/Index', aber die Funktion heißt' Speichern'. Ist dies nur ein Fehler in der Post oder führen Sie diesen spezifischen Code aus? – Niklas

Antwort

4

Sie müssen die Daten an stringify, die Sie an den Server senden, um es zu JSON zu konvertieren, da, dass der Header Content-Typ ist Ihnen angezeigt:

data: JSON.stringify(data) 
+0

Was ist die Hölle ?! Ich habe Stunden damit verbracht, verschiedene Kombinationen davon zu durchlaufen - ich habe vorher JSON.stringify hinzugefügt, und es hat nicht funktioniert ... Was hast du getan? Komm schon, bist du hier? – Paul