FromBody Wert wird null

8

Dies ist Asp.Net Webform-Anwendung
Dies ist meine POST-Methode in meinem Apicontroller

%Vor%

Ich bin mit fiddler post process.
Ich habe so experimentiert.
Aber es hat nicht.

Was ist das Problem? Können Sie mir helfen?

Ich habe es versucht, ich habe versagt.

%Vor%

In Fiddler:

%Vor%     
Hakan Ertuğ 30.05.2013, 13:40
quelle

4 Antworten

20

Die POST-Körper-Nutzlast in Fiddler sollte sein:

%Vor%

anstelle von:

%Vor%

Das ist nur eines dieser seltsamen Dinge über die Modellbindung in der Web-API. Wenn Sie value=foo_bar in der POST-Body-Payload unterstützen möchten, könnten Sie immer ein View-Modell schreiben:

%Vor%

und dann lassen Sie Ihre Methode dieses Ansichtsmodell als Parameter verwenden:

%Vor%     
Darin Dimitrov 30.05.2013, 13:48
quelle
10

Ich begegne diesem Problem, und die Lösung ist:
passen Sie das Anfragetextformat an = foo_bar,
auch brauchen haders anfordern:

%Vor%     
dasons 29.08.2013 09:49
quelle
0

Web-API-Null-Fehler

Damit die Post () - Standardmethode funktioniert, müssen POST-Daten von Fiddler wie folgt aussehen

    
user5501587 29.10.2015 06:39
quelle
0

Ich hatte kürzlich eine ähnliche Erfahrung mit einer WebAPI-Anwendung. Die Anwendung funktionierte korrekt in meiner Testumgebung, aber als wir einen Build vom Build-Server ausgeführt haben, konnte die Anwendung das Objekt nicht deserialisieren und setzte den Parameter immer nach [FromBody] auf null.

Die Ursache war die Datei web.config und packages.config, die Json.NET 6.0.4 und das NuGet-Paket in der Bin 10.0.3.

spezifizierten

Die Modellbindungsart sieht zunächst wie eine Blackbox von außen aus. Zumal es ruhig eine Null zurückgeben kann ohne Angabe, was falsch ist. Auf dieser Microsoft-Seite Unter der Überschrift Testing Object Serialization gibt es ein Beispiel, Serialisierung und Deserialisierung zu testen:

%Vor%

Wenn ich den obigen Code in meine Anwendung eingefügt habe und ausgeführt habe, hat Visual Studio eine Exception sowohl in den Funktionen serialize als auch deserialize geworfen. Die Ausnahme hat klar zum Ausdruck gebracht, dass das Laden von Json.net Version 6.0.4 fehlgeschlagen ist. Das hat mich dazu gebracht zu entdecken, dass Version 10.0.3 in der Bin statt 6.0.4 war. Ich habe mit der rechten Maustaste auf das Projekt geklickt, um NuGet-Pakete zu verwalten ... im Kontextmenü. Dann wurde das Json.net NuGet-Paket entfernt und neu hinzugefügt. Dadurch haben Sie das Json.net NuGet-Paket in der Bin platziert und die Pakete "packages.config" und "web.config" mit den entsprechenden Versionsnummern aktualisiert.

    
Gene Pool 10.01.2018 20:21
quelle