Mein iPhone-Client postet den folgenden JSON zu meinem mvc-Dienst. Beim Veröffentlichen von Daten aus HTML-Formular konvertiert es automatisch Formulardaten in UserModel und übergibt das Objekt an meine Create-Methode, aber wenn ich die JSON-Zeichenfolge im Körper meiner Anfrage aus dem iPhone senden, kommt es als Null zurück.Asp.Net mvc, Beitrag json?
Was wäre die sauberste Lösung für die Konvertierung von JSON zu Object.
Ich lieber nicht mehrere Methoden für verschiedene Clients erstellen, so versuche ich, die gleiche Methode für die Arbeit am iPhone und MVC-Client zu bekommen.
Körper meiner Anfrage:
{
"firstName" : "Some Name",
"lastName" : "Some Last Name",
"age" : "age"
}
My Model und Aktion Ergebnis
public class UserModel
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public int Age { get; set; }
}
[HttpPost]
public Create ActionResult(UserModel user)
{
// user is null
userStorage.create(user);
return SuccessResultForModel(user);
}
nur um zu bestätigen, können Sie das Benutzerobjekt umwandeln möchten, dass trifft den Controller von Json? –
Haben Sie die JsonValueProviderFactory registriert (die benötigt wird, damit MVC die JSON-Postdaten dekodieren kann)? Gibt der Client den richtigen ContentType an? Siehe http://stackoverflow.com/questions/4789481/post-an-array-of-objects-via-json-to-asp-net-mvc3 für weitere Dinge zu überprüfen (Top-Abstimmung hat die Liste). –
Dass JSON nicht gültig aussieht, gibt es ein Komma nach "Alter"? Auch sollte der Wert für Alter ein int sein? (Obwohl ich denke, dass dies fehlschlägt, wird es einen Standard-Int-Wert von 0 verwenden). Auch Ihre HttpPost-Methode sagt 'Create Actionresult', sollte es nicht' ActionResult Create' sein? – Snixtor