2016-12-05 1 views
-1

를 역 직렬화 내가 널 값으로 MVC WebAPI에 AJAX를 통해 게시하고 JSON 객체를 가지고 :널 속성 JSON

:

제어기 동작에서 MyObject로 역 직렬화
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; } 

    ... 
} 

Contact 속성은 default(Affiliation) 인 0

하지만 실제로는 단지 null이되고 싶습니다. NullValueHandlingDefaultValueHandling의 serialization 설정을 this postthis post에서 변경하려고했지만 아무 효과가 없습니다. Contact을 null로 설정하려면 어떻게해야합니까?

+0

재현 할 수 없습니다. 실제 루트 객체는 'Contact' 속성을 할당하는 기본 생성자를 가집니까? public MyObject() { this.Contact = new Affiliation(); }'? – dbc

+0

Nope, MyObject 및 Affiliation에는 생성자가 없습니다. –

답변

0

아, FFS ... 내가 AJAX 요청에 data 속성을 설정하기 전에 JSON.stringify를 호출 wan't

. 따라서 { Id: 1234, Contact: null }처럼 보인 JSON을 보내지 않고 양식 데이터를 보냈습니다. Id=1234&Contact=처럼 보입니다.