如何发布ajax调用和C#来识别子对象

how to post an ajax call and C# to recognize child objects

本文关键字:识别 对象 何发布 ajax 调用      更新时间:2023-09-26

除了接收地址的子集合之外,代码还能工作吗?用json发送这个集合的正确方式是什么?不幸的是,这次尝试失败了。"addresses"值为null谢谢,

var val = {
    'forename': 'test',
    'surname': 'test',
    'postcode': 'test',
    'Addresses': {
        'Line1': 'Test',
        'Line2': 'Here'
    }
};
jr.ajax.loadJson(url, val,
   true,
   function(xhr, textStatus, errorThrown) {
   }, 
   true, 'post', val);
});

// I want the posted value to be this object
public class Member
{
    public string forename { get; set; }        
    public string surname { get; set; }        
    public string postcode { get; set; }
    public Address[] Addresses { get; set; }
}
public class Address
{
    public string Line1 { get; set; }        
    public string Line2 { get; set; }        
}

我的控制器看起来像这样:

public ActionResult Show(Member request) {..}

Addresses子成员的JSON不正确。

在您的模型中,Addresses是一个地址数组。但是,在JSON中,您将地址作为单个地址发送。那行不通。

相反,将JSON更改为:

var val = {
    'forename': 'test',
    'surname': 'test',
    'postcode': 'test',
    'Addresses': [
        {
            'Line1': 'Test',
            'Line2': 'Here'
        }
    ]
};

注意地址结构周围的[]。现在应该可以了。

一个额外的考虑因素是在您的模型中使用List<Address>而不是Address[]