Ich habe für die letzten 3 Stunden nach 100 Links gesucht, zB scriptfactory in webconfig, 3 Fehler, Inhaltstyp usw. hinzugefügt.
Ich bin nicht in der Lage herauszufinden, was eigentlich der Fehler ist.
Umwelt: Dienst läuft auf .net 4.0 Webanwendung, die unter .net 4.0 ausgeführt wird
Anforderungen: Ich muss ein jqGrid mit asmx Web-Service binden, der mir einen json als Zeichenkette zurückbringt. Web-Service-Datei enthält folgenden Code.
%Vor%Javascript ist wie folgt
%Vor%HTML ist wie folgt
%Vor%Web-Service-Ausgabe beim Klicken auf die Schaltfläche Aufrufen
%Vor% Bitte schlagen Sie vor, was ich vermisse.
<string xmlns="http://tempuri.org/">
Tags irritieren mich. Ich gehe davon aus, dass diese Tags mein Gitter nicht binden können.
UPDATE:
Der ASMX-Dienst sieht jetzt wie folgt aus:
%Vor% Wenn Sie auf die Schaltfläche Aufrufen klicken, wird XML zurückgegeben, da in der Anfrage nicht contentType: 'application/json; charset=utf-8'
angegeben ist. Also das Experiment mit dem Klicken auf Invoke Button hilft nicht wirklich.
Das Hauptproblem in Ihrem Code besteht darin, dass Sie die Daten innerhalb der Webmethode in eine Zeichenfolge konvertieren. Die Zeile
%Vor% werden nicht benötigt. In der Regel wird das Objekt zurückgegeben. Das GetJsonServerProcess
sollte in etwas wie
Das nächste Problem ist, dass das Standardeingabeformat, das jqGrid wartet, ein anderes ist (siehe hier ). Also höhlen Sie aus, um jsonReader
anzugeben, die das Datenformat beschreiben. In Ihrem Fall wird es so etwas wie
Außerdem sollten Sie niemals das Präfix http://localhost:1092/
in Ajax url
verwenden, da Sie aus Sicherheitsgründen nur Daten von derselben Site abrufen können. Der Parameter data
in jqGrid hat eine andere Bedeutung als in jQuery. Daher sollten Sie data: "{}"
entfernen und type: "POST"
von ajaxGridOptions
in mtype: "POST"
verschieben. Als Ergebnis haben Sie etwas wie
Ich habe den Code nicht getestet, aber er sollte näher an dem sein, was Sie brauchen.
AKTUALISIERT : Sie sollten den Code korrigieren, indem Sie jsonReader
ändern. Sie können die Arbeitsdemo hier herunterladen. Es zeigt das Gitter an
Ich habe auf der Serverseite den Code verwendet
%Vor%und auf der Clientseite
%Vor%Okay, ich habe den gleichen Fehler und nach einer Menge von Versuch und Irrtum ist hier meine "schnelle und schmutzige" Lösung;
%Vor%