Heim >Backend-Entwicklung >C++ >Wie übergebe ich mit jQuery AJAX ein Array von Objekten an einen MVC-Controller?

Wie übergebe ich mit jQuery AJAX ein Array von Objekten an einen MVC-Controller?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-21 17:17:14829Durchsuche

How to Pass an Array of Objects to an MVC Controller Using jQuery AJAX?

Verwenden von jQuery AJAX zum Senden eines Arrays von Objekten an einen MVC-Controller

Beim Senden eines Arrays von Objekten an einen MVC-Controller mithilfe der ajax()-Methode von jQuery besteht ein häufiges Problem darin, einen null-Wert für das Array im Controller zu empfangen. Dies kann auch dann passieren, wenn der Controller-Parameter korrekt als List<T>.

definiert ist

Die Lösung beinhaltet zwei wichtige Anpassungen:

  1. JSON-Datentyp angeben: Der ajax()-Aufruf muss sowohl contentType als auch dataType explizit auf 'application/json; charset=utf-8' setzen.

  2. Daten mit JSON.stringify() serialisieren: Das JavaScript-Array von Objekten muss mit JSON.stringify() in einen JSON-String konvertiert werden. Entscheidend ist, dass diese Zeichenfolge das Array innerhalb einer Eigenschaft (z. B. „Dinge“) kapseln sollte.

Hier ist der korrigierte Code, der diese Änderungen implementiert:

<code class="language-javascript">$(document).ready(function () {
    const things = [
        { id: 1, color: 'yellow' },
        { id: 2, color: 'blue' },
        { id: 3, color: 'red' }
    ];      

    const data = JSON.stringify({ things: things });

    $.ajax({
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        type: 'POST',
        url: '/Home/PassThings',
        data: data,
        success: function () {          
            $('#result').html('"PassThings()" successfully called.');
        },
        error: function (response) {          
            $('#result').html(response.responseText); // Display error details
        }
    }); 
});</code>

Und die entsprechende C#-Controller-Methode:

<code class="language-csharp">public void PassThings(List<Thing> things)
{
    // Access the 'things' array here
}

public class Thing
{
    public int Id { get; set; }
    public string Color { get; set; }
}</code>

Indem Sie diese Schritte befolgen, übertragen Sie das Array von Objekten erfolgreich über jQuery AJAX an Ihre MVC-Controller-Methode. Beachten Sie die Änderung von failure zu error im AJAX-Aufruf zur besseren Fehlerbehandlung und zur Anzeige des Antworttextes zu Debugging-Zwecken.

Das obige ist der detaillierte Inhalt vonWie übergebe ich mit jQuery AJAX ein Array von Objekten an einen MVC-Controller?. 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