Heim >Web-Frontend >js-Tutorial >Wie übergebe ich JSON-POST-Daten als Objekt an eine Web-API-Methode in ASP.NET MVC4?

Wie übergebe ich JSON-POST-Daten als Objekt an eine Web-API-Methode in ASP.NET MVC4?

Barbara Streisand
Barbara StreisandOriginal
2024-11-09 14:13:02341Durchsuche

How to Pass JSON POST Data as an Object to a Web API Method in ASP.NET MVC4?

Übergabe von JSON-POST-Daten als Objekt an eine Web-API-Methode

In der ASP.NET MVC4-Web-API kann es zu einem Szenario kommen, in dem Eine POST-Anfrage mit JSON-Daten muss als Objekt an eine Aktionsmethode übergeben werden. Ohne ordnungsgemäße Konfiguration kann der Parameter der Aktionsmethode jedoch Nulleigenschaften enthalten. Um dieses Problem zu beheben, müssen Sie die folgenden Schritte ausführen:

1. Geben Sie Content-Type als „application/json“ an:

Stellen Sie beim Senden der Anfrage sicher, dass der Content-Type-Header auf „application/json“ gesetzt ist. Dadurch wird der Server darüber informiert, dass die Daten im JSON-Format vorliegen.

2. Verwenden Sie die JSON.stringify-Methode:

Konvertieren Sie im clientseitigen Code die JSON-Daten mithilfe der JSON.stringify-Methode in einen JSON-String. Dieser Schritt ist für den Modellbinder von entscheidender Bedeutung, um die JSON-Daten an Ihr Klassenobjekt zu binden.

Beispiel:

var customer = { contact_name: "Scott", company_name: "HP" };
$.ajax({
    type: "POST",
    data: JSON.stringify(customer),
    url: "api/Customer",
    contentType: "application/json"
});

3. Dekorieren Sie den Aktionsmethodenparameter mit [FromBody]:

Dekorieren Sie in der Web-API-Aktionsmethode den Parameter, der die JSON-Daten empfängt, mit [FromBody]. Dieses Attribut gibt an, dass die Daten aus dem Anforderungstext gebunden werden sollen.

Beispiel:

public IActionResult Post([FromBody] Customer customer)
{
    // ...
}

4. Komplexe Objekte veröffentlichen:

Wenn Ihre Ansichtsmodellklasse komplexe Eigenschaften enthält (z. B. Listen oder verschachtelte Klassen), gelten dieselben Prinzipien. Stellen Sie sicher, dass der clientseitige Code ein Objekt erstellt, das der Struktur der Klasse entspricht, und es als JSON-Daten mit dem richtigen Inhaltstyp sendet.

Fehlerbehebung:

  • Wenn die Modellbindung für einige Eigenschaften funktioniert, andere jedoch nicht, prüfen Sie, ob der Parameter der Aktionsmethode mit [FromBody] versehen ist.
  • Wenn nicht, ist dies nicht der Fall Wenn Sie den Content-Type explizit festlegen, stellen Sie sicher, dass Ihr clientseitiger Code die richtige Methode verwendet (z. B. $.ajax mit contentType auf „application/json“).

Das obige ist der detaillierte Inhalt vonWie übergebe ich JSON-POST-Daten als Objekt an eine Web-API-Methode in ASP.NET MVC4?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn