Ich habe eine einfache Web-API, aber wenn ich es mit Postman testen, ist der Methodenparameter null. Ich habe über andere Fragen mit ähnlichem Titel gesucht, aber ich habe keine Antwort gefunden.Web API: Aktionsparameter ist Null
Hier ist mein Controller-Aktion:
[HttpPost]
public Member Create([FromBody] string payload)
{
var s = Request.Content.ReadAsStringAsync();
if (payload == null)
{
throw new ArgumentNullException(nameof(payload));
}
Console.WriteLine(payload);
Console.WriteLine(s);
return null;
}
Und hier ist mein Postbote Konfiguration:
Im Header Tab I content-type
hinzugefügt haben application/json
zu sein.
, wenn ich das Debuggen bin, die payload
Variable ist immer null
und der String s
enthält so etwas wie
Id = 98, Status = RanToCompletion, Method = "{null}", Result = ""
Also, was mache ich falsch?
Was passiert, wenn Sie nur eine Zeichenfolge (kein JSON) in den Körper einfügen? – Donal
Lesen Sie dies und Sie werden dort, wo Sie den Fehler mit der Parameterbindung gemacht haben. [Parameterbindung in ASP.NET Web API] (https://www.asp.net/web-api/overview/formats-and-model-binding/parameter-binding-in-aspnet-web-api) Der andere Fehler ist, dass Sie die Aufgabe und nicht das Ergebnis der Aufgabe ausgeben, wenn Sie versuchen, den Inhalt als Zeichenfolge zu lesen – Nkosi
@Donal Wenn ich eine einfache Zeichenfolge, funktioniert es. Aber warum? –