繁体   English   中英

通过AJAX将多个JSON对象传递给ASP.Net PageMethod

[英]Passing Multiple JSON objects via AJAX to ASP.Net PageMethod

我试图通过AJAX将两个JSON对象传递给我的Page方法

我在Code Behind中创建了一个类,并在javascript中创建了一个JSON对象数组。

以下是我的两个类和Page方法

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)
{

    return "";
}

以下是我的Javascript

function TestJSON() {
        //var JSONObject = { a: [], b };
        var obj = {users: []};
        var user;
        for (var i = 0; i < 3; i++) {
            user = {
                userid: i.toString(),
                Name: "User" + i.toString() 
            }
            obj.users.push(user);
        }

        var company = {companyid: "4", Name:"TEST COMPANY"};

        $.ajax({
            url: "bulkconsignments.aspx/TestJsonMethod",
            type: "POST",
            contentType: "application/json; charset=utf-8",
            data: JSON.stringify(obj),
            async: false,
            cache: false,
            success: function (msg) {
                alert(msg.d);
            }
        });
    }

到目前为止,我的代码运行良好。

我想做的就是像这样将公司对象传递给Page方法

[WebMethod]
public static string TestJsonMethod(userModel[] users, companyModel company)
{

    return "";
}

您可以将模型合并为一个模型。

public class TestJsonModel
{
    public UserModel UserModel { get; set; }

    public CompanyModel CompanyModel { get; set; }
}

然后动作看起来像;

[WebMethod]
public static string TestJsonMethod(TestJsonModel model)

另外,Ajax请求发布数据看起来像;

data: JSON.stringify({UserModel:obj,CompanyModel:company})

我正在尝试不同的方法来完成此工作。

function TestJSON() {
    //var JSONObject = { a: [], b };
    var obj = {users: [], company: {}};
    var user;
    for (var i = 0; i < 3; i++) {
        user = {
            userid: i.toString(),
            Name: "User" + i.toString() 
        }
        obj.users.push(user);
    }


    var company_ = {companyid: "4", Name:"TEST COMPANY"};
    obj.company = company_;
    $.ajax({
        url: "bulkconsignments.aspx/TestJsonMethod",
        type: "POST",
        contentType: "application/json; charset=utf-8",
        data: JSON.stringify(obj),
        async: false,
        cache: false,
        success: function (msg) {
            alert(msg.d);
        }
    });
}

页面方法背后的代码保持不变。

 [WebMethod]
public static string TestJsonMethod(userModel[] users, companyModel company)
{

    return "";
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM