使用 jQuery AJAX 将对象数组发送到 MVC 控制器
使用 jQuery 的 ajax()
方法将对象数组发送到 MVC 控制器时,一个常见问题是在控制器中接收数组的 null
值。 即使控制器参数正确定义为 List<T>
.
解决方案涉及两个关键调整:
指定 JSON 数据类型: ajax()
调用必须显式将 contentType
和 dataType
设置为 'application/json; charset=utf-8'
。
使用 JSON.stringify() 序列化数据: JavaScript 对象数组需要使用 JSON.stringify()
转换为 JSON 字符串。 至关重要的是,这个字符串应该将数组封装在属性中(例如“things”)。
这是实现这些更改的更正代码:
<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>
以及对应的C#控制器方法:
<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>
通过执行这些步骤,您将通过 jQuery AJAX 成功将对象数组传输到 MVC 控制器方法。 请注意 AJAX 调用中从 failure
到 error
的更改,以便更好地处理错误,显示响应文本以进行调试。
以上是如何使用 jQuery AJAX 将对象数组传递到 MVC 控制器?的详细内容。更多信息请关注PHP中文网其他相关文章!