You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过AJAX向ASP.Net PageMethod同时传递JSON数组与对象

解决方案

要让你的PageMethod同时接收userModel[]数组和companyModel对象,只需要调整前端AJAX请求发送的JSON数据结构,使其包含与后端参数名完全匹配的键值对即可,具体修改如下:

1. 修改前端JavaScript代码

你需要在构造的请求数据对象中,同时加入users数组和company对象,确保它们的键名与后端WebMethod的参数名完全对应(大小写建议保持一致,避免模型绑定出现问题):

function TestJSON() { 
    // 构造包含两个参数的请求对象
    var requestData = {
        users: [],
        company: {}
    }; 
    
    // 填充users数组
    var user; 
    for (var i = 0; i < 3; i++) { 
        user = { userid: i.toString(), Name: "User" + i.toString() } 
        requestData.users.push(user); 
    } 
    
    // 填充company对象
    requestData.company = {companyid: "4", Name:"TEST COMPANY"}; 
    
    $.ajax({ 
        url: "bulkconsignments.aspx/TestJsonMethod", 
        type: "POST", 
        contentType: "application/json; charset=utf-8", // 必须设置此类型,确保ASP.NET正确解析JSON
        data: JSON.stringify(requestData), // 序列化包含两个参数的对象
        async: false, 
        cache: false, 
        success: function (msg) { 
            alert(msg.d); 
        },
        // 可选:添加错误处理,方便调试
        error: function(xhr, status, error) {
            console.error('请求出错:', error);
            alert('请求失败,请查看控制台日志');
        }
    }); 
}

2. 确认后端代码(无需修改)

你已经正确修改了WebMethod的参数定义,只要参数名users和company与前端发送的JSON键名对应,ASP.NET的模型绑定会自动将JSON数据映射到对应的类实例:

public class userModel { 
    public string userid { get; set; } 
    public string Name { get; set; } 
} 
public class companyModel { 
    public string companyid { get; set; } 
    public string Name { get; set; } 
} 
[WebMethod] 
public static string TestJsonMethod(userModel[] users, companyModel company) { 
    // 在这里可以正常使用users数组和company对象
    return "接收成功"; 
}

关键注意事项

  • Content-Type必须正确:一定要设置contentType: "application/json; charset=utf-8",否则ASP.NET会将请求数据视为表单数据,无法正确解析为JSON对象。
  • 参数名严格匹配:前端JSON的键名要和后端WebMethod的参数名完全一致(比如后端是users,前端不能写成userList),模型绑定才能正确映射。
  • 对象结构一致:前端构造的user和company对象的属性名,要和后端类的属性名对应(比如userid、Name),确保数据能正确填充到类实例中。

内容的提问来源于stack exchange,提问作者Muhammad Rabi Bin Mazhar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:24:06