According to the docs 동안 IgnoreDataMember 특성이 json 개체 속성을 건너 뜁니다. IgnoreDataMember 특성은 직렬화 중에 만 고려해야합니다.** DE ** 직렬화
그러나 내가보고있는 바로는, MVC 모델 바인딩은 * json의 직렬화 중에도 사용하고 있습니다.
은 다음 클래스를 고려public class Tax
{
public Tax() { }
public int ID { get; set; }
[Required]
[Range(1, int.MaxValue)]
[IgnoreDataMember]
public int PropertyId { get; set; }
}
POST는/액션 메서드에 다음 JSON 문자열을 넣으면 :
{"Position":0,"Description":"State sales tax","Rate":5,"RateIsPercent":true,"PropertyId":1912}
나는 다음과 같은 유효성 검사 오류 얻을 :
{
"Message": "The request is invalid.",
"ModelState": {
"newTax.PropertyId": [
"The field PropertyId must be between 1 and 2147483647."
]
}
}
을 [Range(1, int.MaxValue)]
및 [Required]
속성은 모두 유효하지 않습니다.
[IgnoreDataMember]
특성을 제거하면 모든 것이 정상적으로 작동합니다.
역 직렬화 중에 MVC 바인딩이 속성을 무시하지 않도록하는 데 사용할 수있는 다른 속성이 있습니까?
json 문자열을 게시 할 때만 발생합니다. 이름/값 문자열을 게시하면 everthing이 올바르게 작동합니다.