-1
をデシリアライズするとき、私は私がNULL値でMVC WebAPIのにAJAXを経由して投稿していますJSONオブジェクトを持っている:ヌルプロパティJSON
{
Id: 1234,
Contact: null
}
コントローラメソッドとオブジェクトはかなり普通です。
public HttpResponseMessage Post([FromBody]MyObject obj)
{
}
[DataContract]
public MyObject
{
[DataMember]
public int Id { get; set; }
[DataMember]
public Affiliation Contact { get; set; }
}
[DataContract]
public Affiliation
{
[DataMember]
public int Id { get; set; }
[DataMember]
public string FirstName { get; set; }
...
}
コントローラのアクションにMyObject
にデシリアライズする場合、Contact
プロパティがdefault(Affiliation)
ある:
Contact = { Id = 0, FirstName = null, ... }
しかし、私は実際にはそれがnull
であることを望みます。 NullValueHandling
とDefaultValueHandling
のシリアル化設定をthis postとthis postに変更しようとしましたが、効果がありませんでした。 Contact
をどうすればnullにすることができますか?
これを再現することはできません。あなたの実際のルートオブジェクトは、あなたが 'Contact'プロパティを割り当てるデフォルトのコンストラクタを持っていますか? 'public MyObject() { this.Contact = new Affiliation(); } '? – dbc
Nope、MyObject、およびAffiliationにはコンストラクタがありません。 –