"J'ai vu d'autres articles sur ce sujet et j'ai joué avec des variations, mais je ne parviens toujours pas à faire fonctionner correctement la liaison de modèle JSON.
J'ai les éléments suivants dans ma méthode global.asax.cs Application_Start:
ValueProviderFactories.Factories.Add(new JsonValueProviderFactory());
Les données postérieures ressemblent à ceci:
{"UserName":"Mike","Password":"password","Persist":true}
Mon PoCo:
public class UserLoginViewModel {
public string UserName { get; set; }
public string Password { get; set; }
public bool Persist { get; set; }
}
La méthode du contrôleur se déclenche correctement mais possède l'objet UserLoginViewModel par défaut avec UserName = null, Password = null et Persist = false; la signature ressemble à ceci:
[HttpPost]
public ActionResult Logon(UserLoginViewModel model) {
if (ModelState.IsValid) {
...
Réponses:
14 pour la réponse № 1Le problème est du côté client! Je n'ai pas défini l'ensemble contentType.
$.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"); }
});