Bisher 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 wie folgt zu übergeben:
%Vor%Der Beitrag:
%Vor%Die Fehlerreaktion:
%Vor%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?
data: "{'backerEntries':" + backerEntries + "}",
.. ist dasselbe wie
%Vor%... was ziemlich nutzlos ist. Verwenden Sie Duncan Vorschlag, wenn Sie nur eine codierte Liste von Werten mit dem Namen "backerEntries" in Ihrer Querystring übergeben möchten. Wenn Sie die Daten JSON-codieren möchten, rufen Sie eine JSON-Bibliothek auf und rufen Sie% an. co_de%.
Die Daten, die Sie übergeben, versuchen, sie bereits als Zeichenfolge zu übergeben. Wenn Sie möchten, dass jQuery es transformiert, lassen Sie das Ganze als Objekt, z. B.
%Vor%Angenommen backerEntries ist natürlich ein Array. jQuery sollte dies transformieren und an die Querystring anhängen, da dies das Standardverhalten ist. Ihr aktueller Code basiert auf dem Standard-JavaScript-Verhalten, das ein Array nicht standardmäßig in seine Zeichenfolgendarstellung konvertiert.
Da Sie ASP.NET verwenden, können Sie die integrierte ASP.NET AJAX-Serialisierungsbibliothek verwenden:
%Vor%Übergeben Sie das direkt in Ihrem jQuery Ajax-Aufruf:
%Vor%Dies ist NICHT gültig JSON: {'foo': 'bar'}
Ist nicht, war nie, wird nie sein. JSON-Prozessoren sind oft sehr fehlerverzeihend, was natürlich eine falsche Bequemlichkeit ist.
Lesen Sie die Spezifikation. Ein String ist so definiert, dass er in doppelte Anführungszeichen eingeschlossen ist, keine einfachen Anführungszeichen, keine Smiley-Zeichen, keine rechtwinklig gebogenen Metallstücke, keine Steine. Es gibt keine Anführungszeichen, Punkt.
Nun sind Eigenschaftsnamen JSON-Zeichenfolgen. Per Definition sind sie in Anführungszeichen eingeschlossen.
Gültig: {"foo": "bar"} gültig "{" foo ": 100} gültig: {"foo": true} gültig: {"foo": ["eins", "zwei"], "bar": false}
siehe www.json.org
siehe www.jsonlint.com
Tags und Links jquery asp.net serialization