Heim >Backend-Entwicklung >C++ >Wie übergebe ich mithilfe von jQuery Ajax ordnungsgemäß ein Array von Objekten an einen MVC-Controller?

Wie übergebe ich mithilfe von jQuery Ajax ordnungsgemäß ein Array von Objekten an einen MVC-Controller?

Susan Sarandon
Susan SarandonOriginal
2025-01-21 17:21:10939Durchsuche

How to Properly 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

Wenn Sie mithilfe der ajax()-Methode von jQuery ein Array von Objekten an einen MVC-Controller senden, erhält der Parameter des Controllers möglicherweise einen null-Wert. Dieser Artikel beschreibt die Lösung.

Fehlerbehebung beim Nullwert

Das Problem ist typischerweise auf eine falsche Datenserialisierung und Inhaltstypverarbeitung zurückzuführen. So beheben Sie das Problem:

  1. Inhaltstyp und Datentyp festlegen:

    Die ajax()-Funktion erfordert explizite contentType- und dataType-Einstellungen:

    <code class="language-javascript">contentType: 'application/json; charset=utf-8',
    dataType: 'json',</code>
  2. JSON-Serialisierung:

    Das Array von Objekten muss mit JSON.stringify() in das JSON-Format serialisiert werden. Strukturieren Sie die Daten wie folgt:

    <code class="language-javascript">things = JSON.stringify({ things: things });</code>

Anschauliches Beispiel

Dieses Beispiel zeigt, wie ein Array von Objekten erfolgreich übergeben wird:

<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 executed.');
        },
        error: function(response) {
            $('#result').html(response.responseText); // Display error details
        }
    });
});</code>

Entsprechende Controller-Methode (C#-Beispiel):

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

Denken Sie daran, /Home/PassThings durch Ihren tatsächlichen Controller und Ihre Aktion zu ersetzen. Die Verwendung von error anstelle von failure bietet eine informativere Fehlerbehandlung. Dieser überarbeitete Ansatz gewährleistet eine ordnungsgemäße Datenübertragung und verhindert das nullWertproblem.

Das obige ist der detaillierte Inhalt vonWie übergebe ich mithilfe von jQuery Ajax ordnungsgemäß 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