In einem größeren Projekt habe ich Probleme, eine WCF-Service-Methode zur Verwendung eines JSON-Parameters zu erhalten. Also habe ich einen kleineren Testfall erstellt und das Verhalten wird wiederholt. Wenn ich den Dienst debugge, kann ich sehen, dass der Parameterwert beim Serviceaufruf null ist. Fiddler bestätigt, dass der JSON gesendet wird und JsonLint bestätigt, dass er gültig ist.
Code unten mit Anmerkungen vom Debugging.
%Vor%... und seine Implementierung
%Vor%Der Aufruf einer der ersten drei Methoden funktioniert korrekt (aber keine Parameter, wie Sie bemerken werden). Aufruf der letzten Methode (TotalScore) mit diesem Client-Code ...
%Vor%... führt zu ...
Beim Versuch, den Parameter Ссылка zu deserialisieren, ist ein Fehler aufgetreten. Die InnerException-Nachricht war 'Expecting state' Element '.. Gefunden' Text 'mit dem Namen' ', namespace' '. '.
Ich habe versucht, eine unverpackte Version von JSON zu senden ...
{"Name": "Simon", "Punkte": "100", "Club": "Rigby"}
aber im Dienst ist der Parameter null und keine Formatierer-Ausnahmen.
Dies ist der Zweig system.serviceModel des Dienstes web.config:
%Vor%
Und hier ist der Player DataContract.
%Vor%Jede Hilfe wird sehr geschätzt und wenn weitere Informationen benötigt werden, lassen Sie es mich wissen.
Vielen Dank.
Sie codieren den Eingabeparameter player
der Methode TotalScore
falsch.
Ich empfehle Ihnen, JSON.stringify
function von json2.js zu verwenden, um JavaScript-Objekte in JSON zu konvertieren.
Wenn Sie das BodyStyle = WebMessageBodyStyle.Wrapped
Attribut der TotalScore
Methode zu BodyStyle = WebMessageBodyStyle.WrappedRequest
ändern, können Sie alert(data.TotalScoreResult)
im success
Handle auf alert(data)
ändern.
Sie haben den Method-Parameter für den Web-Aufruf nicht angegeben. Siehe: Ссылка
Tags und Links wcf javascript jquery json nullreferenceexception