Bis jetzt habe ich JavaScript-Strings nur an meine Webmethoden übergeben, die geparst werden, normalerweise als Guids. aber jetzt habe ich eine Methode, die eine IList akzeptiert ... auf dem Client, ich baue dieses Array von Objekten und dann versuchen, es passieren mag:Warum macht jquery mein Array nicht zu einer JSON-Zeichenfolge, bevor es an die ASP.net-Webmethode gesendet wird?
$.ajax({
type: 'POST',
url: 'personalization.aspx/SetPersonalization',
data: "{'backerEntries':" + backerEntries + "}",
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: postcardManager.SetPersonalizationComplete
});
Der Beitrag:
{'backerEntries':[object Object],[object Object],[object Object]}
Der Fehler Antwort:
Invalid JSON primitive: object.
Aus irgendeinem Grund scheint jquery mein Array nicht in eine JSON-Zeichenfolge zu konvertieren? Irgendwelche Ideen warum? Ich habe versucht, [] um die BackerEntries und {}, sowie um [[]} nur aus reiner Verzweiflung herumzulegen. Fehle ich etwas Offensichtliches hier?
Dank Shog9 .. das ist, was ich gegoogelt und bereits damit begonnen, zu implementieren. Leider besteht meine Liste nicht nur aus Strings, sondern aus einer Liste von benutzerdefinierten Objekten. Deshalb denke ich, dass jQuery keine String-Einträge enthält. – EvilSyn
Arbeitete ohne Probleme. Ich bin überrascht, dass jquery das nicht eingebaut hat! – EvilSyn
jQuery bietet keine Serialisierungsdienste. Da Sie bereits ASP.NET verwenden und keine neue Bibliothek hinzufügen, sollten Sie die integrierten Serialisierungsroutinen verwenden, die Sie kostenlos mit dem ASP.NET AJAX-Framework erhalten (siehe meine Antwort unten). –