2011-01-07 12 views
4

Ich habe andere Beiträge zu diesem Thema gesehen und habe mit Variationen fiedled aber immer noch nicht die JSON-Modellbindung funktioniert nicht richtig funktionieren.MVC3 RC2 JSON Post-Bindung funktioniert nicht richtig

Ich habe folgende in meinem global.asax.cs Application_Start Methode:

ValueProviderFactories.Factories.Add(new JsonValueProviderFactory()); 

Die Post zurückliegenden Daten wie folgt aussehen:

{"UserName":"Mike","Password":"password","Persist":true} 

Mein PoCo:

public class UserLoginViewModel { 
    public string UserName { get; set; } 
    public string Password { get; set; } 
    public bool Persist { get; set; } 
} 

Die Controller-Methode wird ordnungsgemäß ausgelöst, verfügt jedoch über das standardmäßige UserLoginViewModel-Objekt mit UserName = null, Password = null, und Persist = falsch; die Unterschrift sieht so aus:

[HttpPost] 
public ActionResult Logon(UserLoginViewModel model) { 
    if (ModelState.IsValid) { 
    ... 

Antwort

14

Das Problem ist auf der Client-Seite! Ich hatte den contentType nicht festgelegt.

$.ajax({ 
    url: location.href, 
    type: "POST", 
    data: ko.toJSON(this), 
    datatype: "json", 
    **contentType: "application/json charset=utf-8",** 
    success: function (data) { alert("success"); }, 
    error: function (data) { alert("error"); } 
}); 
+0

Hatte das exakt gleiche Problem auch – Korayem