フィールドを追跡するために、角度2で作成したモデルクラスIがあります。この同じクラスはwebapiプロジェクトのモデルとしても存在します。私のサービスでJSONを使用してオブジェクトクラスを角度2からWeb APIに直接マップする方法は?
export class People {
Name: string;
Phone: string;
Date: date;}
export class Address {
street: string,
zip: string,
}
私は私のWEBAPIコントローラmodelPeopleとmodeAddressがマップされません
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>();
}
にこれを送ります。モデルを直接マップするにはどうすればよいですか。
JObjectにデータの文字列があると、私はヌルフィールドの束になります。
EDIT: 私は人々のオブジェクトを保持するコンテナクラスを作成し、私はその後、コンテナにオブジェクトに渡され、私の結果はまだ
public JArray GetPeopleData([FromBody]Container container)
{
var modelPeople = container.people;
var modelAddress = container.address;
}
両方ともNULLです
public class Container
{
public People people {get; set;}
public Address addresss {get; set;}
}
アドレスすべての値がnullである
私はとても近くだが、何かが
を働く感じるそれを得るいけません。別の言葉では、オブジェクトをパラメータとして受け入れるRESTエンドポイントを公開します。オブジェクトはあなたのためにJSONにシリアライズ/デシリアライズされるので、それをマップする方法などを心配する必要はありません – code4life
私は混乱します。公式のJArray GetPeopleData([FromBody] JObjectモデル)で私のパルメータがどのように見えるのですか?それに私は何を渡すべきですか? – CodeMan03
ええ、JArrayが問題です。単純な古いC#オブジェクトをパラメータとして定義するだけです。 – code4life