Question

J'utilise le formulaire Web ASP.NET et une valeur cachée pour stocker mon KO ViewModel pour passer à la page suivante après la sérialisation.

ko.toJSON(viewModel) Retour [{}] Dans le cas où ViewModel n'a aucun élément. Lorsque cela est transmis au sérialiseur JavaScript, il fait exploser car la chaîne a "null" en tant que chaîne.

var stringValue = MyHiddenField.Value

var listOfObjects = new JavaScriptSerializer().Deserialize<List<MyObjects>>(stringValue);

Existe-t-il un moyen de gérer JSON vide par JavascriptSerializer?

Merci

Était-ce utile?

La solution

Cela se produit probablement parce que vous initialisez vos observables comme ceci:

var a = ko.observable();

Si vous faites cela, la valeur non emballée de a ne sera pas défini. KO.TOJSON appelle la fonction JSON.Stringify native, qui ne sérialisera pas les propriétés avec des valeurs non définies. Pour éviter cela, le moyen le plus simple est d'initialiser vos observables comme ceci:

var a = ko.observable(null);

En sérialisation, cela se traduira par "A": Null, que le JavascriptSerializer devrait pouvoir digérer.

Voici un violon avec des exemples, vérifiez la console: http://jsfiddle.net/v87ky/1/

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top