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

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

DDD
发布: 2025-01-21 17:26:09
原创
445 人浏览过

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

使用jQuery Ajax将对象数组传递给MVC控制器方法

在尝试使用jQuery的ajax()函数将对象数组传递给MVC控制器的某个方法时,您可能会遇到控制器方法中的“things”参数为空的情况。即使使用List作为参数类型,也可能出现此问题。

解决此问题的方案如下:

things = JSON.stringify({ 'things': things });
登录后复制

通过这种方式将“things”数组包装在JSON对象中,您可以成功地将数组传递给控制器方法。

此实现的完整代码如下:

$(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 获取错误信息
        }
    }); 
});
登录后复制
public void PassThings(List<Thing> things)
{
    // 处理things数据
}

public class Thing
{
    public int Id { get; set; }
    public string Color { get; set; }
}
登录后复制

请注意此实现的两个重要方面:

  1. 在ajax()函数中使用以下设置至关重要:
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
登录后复制
  1. 要将对象数组传递给MVC控制器方法,请使用以下JSON格式:
JSON.stringify({ 'things': things })
```  并且在`failure`回调函数中,使用 `response.responseText` 获取服务器返回的错误信息,以更准确地处理错误。


通过以上步骤,您可以确保将对象数组正确地传递给您的MVC控制器。
登录后复制

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

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