Maison >développement back-end >C++ >Comment transmettre avec succès un tableau d'objets à un contrôleur MVC à l'aide de jQuery Ajax ?

Comment transmettre avec succès un tableau d'objets à un contrôleur MVC à l'aide de jQuery Ajax ?

DDD
DDDoriginal
2025-01-21 17:26:09447parcourir

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

Passer un tableau d'objets à la méthode du contrôleur MVC à l'aide de jQuery Ajax

Lorsque vous essayez de transmettre un tableau d'objets à une méthode d'un contrôleur MVC à l'aide de la fonction ajax() de jQuery, vous pouvez rencontrer une situation où le paramètre "things" dans la méthode du contrôleur est vide. Ce problème peut se produire même lors de l’utilisation de List comme type de paramètre.

La solution à ce problème est la suivante :

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

En encapsulant le tableau "things" dans un objet JSON de cette façon, vous pouvez transmettre avec succès le tableau à la méthode du contrôleur.

Le code complet de cette implémentation est le suivant :

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

    things = JSON.stringify({ 'things': things });

    $.ajax({
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        type: 'POST',
        url: '/Home/PassThings',
        data: things,
        success: function () {          
            $('#result').html('"PassThings()" successfully called.');
        },
        error: function (response) {          
            $('#result').html(response.responseText); // 使用 response.responseText 获取错误信息
        }
    }); 
});</code>
<code class="language-csharp">public void PassThings(List<Thing> things)
{
    // 处理things数据
}

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

Veuillez noter deux aspects importants de cette mise en œuvre :

  1. Il est important d'utiliser les paramètres suivants dans la fonction ajax() :
<code class="language-javascript">        contentType: 'application/json; charset=utf-8',
        dataType: 'json',</code>
  1. Pour transmettre un tableau d'objets à une méthode de contrôleur MVC, utilisez le format JSON suivant :
<code class="language-javascript">
JSON.stringify({ 'things': things })
```  并且在`failure`回调函数中,使用 `response.responseText` 获取服务器返回的错误信息,以更准确地处理错误。


通过以上步骤,您可以确保将对象数组正确地传递给您的MVC控制器。</code>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn