根据该文档时,IgnoreDataMember属性只应该序列化过程中加以考虑。
从我所看到的,然而,JSON的* 德 *序列化期间以及使用它的MVC模型绑定。
考虑下面的类:
public class Tax
{
public Tax() { }
public int ID { get; set; }
[Required]
[Range(1, int.MaxValue)]
[IgnoreDataMember]
public int PropertyId { get; set; }
}
如果POST / PUT以下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字符串时发生。 如果我发布的名称/值字符串,寄托都工作正常。