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
Freigeben: 2025-01-21 17:17:14
Original
828 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage