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 :
<code class="language-javascript"> contentType: 'application/json; charset=utf-8', dataType: 'json',</code>
<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!