【问题标题】:Javascript ajax post a complex object with an array of complex objects insideJavascript ajax 发布一个复杂对象,其中包含一组复杂对象
【发布时间】:2021-12-08 21:58:16
【问题描述】:

作为标题,我有一个问题,我看到我的对象数组在后端是空的。比如我在后端定义了2个类...

    public class ScoreModel { 
        public string Subject { get; set; }
        public float Score { get; set; }
    }
    public class StudentTestModel
    {
        public string Name { get; set; }
        public ScoreModel[] Scores { get; set; }
    }

在上面显示的代码中,StudentTestModel 类有一个 ScoreModel 数组,其中包含 2 个简单数据成员。然后在前端,我使用jQuery库这样调用后端......

$("#btnCountScore").click(function () {
                var frm = new FormData();
                frm.append("Name", "Garfield");
                var r = [
                    { "Subject": "Chinese", "Score": 89 },
                    { "Subject": "English", "Score": 87 },
                    { "Subject": "Math", "Score": 76 },
                    { "Subject": "NaturalScience", "Score": 90 },
                    { "Subject": "SocialScience", "Score": 83 },
                ];
                var r_form = [];
                for (var i = 0; i < r.length; i += 1) {
                    var f = new FormData();
                    f.append("Subject", r[i].Subject);
                    f.append("Score", r[i].Score);
                    r_form.push(f);
                }
                frm.append("Scores", r_form);
                $.ajax({
                    url: "../Home/CountScore",
                    method: "post",
                    processData: false,
                    contentType: false,
                    data: frm,
                    success: function (ret) {
                        $("#lblShowAverage").text(ret);
                    }
                });
            });

当我调试时,我可以看到 Name 包含值,但 Scoures 在我的后端是一个空数组,然后我无法得到我想要的。有人可以指导我纠正这个问题吗?

【问题讨论】:

    标签: javascript c# ajax


    【解决方案1】:

    您是否尝试在发送对象之前将其转换为 json,然后在后端对其进行反序列化?

    前端:JSON.stringify(frm)

    后端:JsonSerializer.Deserialize(jsonString);

    【讨论】:

    • 有效!谢谢!
    • @MikiHoshitsuki437SH 随时!
    猜你喜欢
    • 1970-01-01
    • 2011-01-26
    • 2016-10-26
    • 1970-01-01
    • 2013-02-25
    • 2021-03-29
    • 1970-01-01
    • 2013-10-09
    • 1970-01-01
    相关资源
    最近更新 更多