首页 > 后端开发 > C++ > 如何使用 jQuery AJAX 将对象数组传递到 MVC 控制器?

如何使用 jQuery AJAX 将对象数组传递到 MVC 控制器?

Patricia Arquette
发布: 2025-01-21 17:17:14
原创
828 人浏览过

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

使用 jQuery AJAX 将对象数组发送到 MVC 控制器

使用 jQuery 的 ajax() 方法将对象数组发送到 MVC 控制器时,一个常见问题是在控制器中接收数组的 null 值。 即使控制器参数正确定义为 List<T>.

,也可能发生这种情况

解决方案涉及两个关键调整:

  1. 指定 JSON 数据类型: ajax() 调用必须显式将 contentTypedataType 设置为 'application/json; charset=utf-8'

  2. 使用 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 调用中从 failureerror 的更改,以便更好地处理错误,显示响应文本以进行调试。

以上是如何使用 jQuery AJAX 将对象数组传递到 MVC 控制器?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板