如何使用 JSON 将对象 class 从 angular 2 直接映射到 Web api?

How to directly map an object class from angular 2 to to web api using JSON?

我在 angular 2 中创建了一个模型 class 来跟踪字段。同样的 class 也作为模型存在于我的 webapi 项目中。

export class People {
    Name: string;
    Phone: string;
    Date: date;}

export class Address {
 street: string,
 zip: string,
}

在我的服务中,我将其发送到我的 webapi 控制器

getPeopleData(peopleModel: People, addressmodel: Address)
{
let headers = new headers(...)
data = {
   "p": peopleModel,
   "a": addressModel
}
let body = JSON.stringify(data);

return this.http.post(url, body, {headers: headers})
.map((response: Response)=> ...
}

终于在我的控制器中了

public JArray GetPeopleData([FromBody]JObject models)
{
   var modelPeople = models["p"].ToObject<People>();
   var modelAddress = models["a"].ToObject<Address>();

}

modelPeople 和 modeAddress 不映射。如何让我的模型直接映射。

当 JObject 中有一串数据时,我得到的只是一堆空字段。

编辑: 我创建了一个容器 class 来保存 People 和 Address

的对象
public class Container
{
   public People people {get; set;}
   public Address addresss {get; set;}
}

然后我将对象传递给 Container,我的结果仍然是 null

 public JArray GetPeopleData([FromBody]Container container)
    {
       var modelPeople = container.people;
       var modelAddress = container.address;

    }

两者的所有值为 null。

我不明白我觉得我很接近但缺少一些东西

你好它对我有用

//This is a Gobal object
 result = {
    modelPeople: '',
    modelAddress: ''
 }

constructor( private _http: Http ) {

}
getJsonModel() {
    promise = await this._http.get(URL).toPromise().then(
                res => {
                    this.result= res.json();
                }
    );
}