我对这个问题有一个非常类似的问题(/q/4036259) . 我的模型看起来有点像这样:
SearchModel.cs
[DataContract]
public class SearchModel
{
[DataMember(Name = "sort")]
[Required(ErrorMessage = "e_sort")]
public SortModel Sort { get; set; }
[DataMember(Name = "offset")]
[Required(ErrorMessage = "e_offset")]
public int Offset { get; set; }
[DataMember(Name = "limit")]
[Required(ErrorMessage = "e_limit")]
public int Limit { get; set; }
[DataMember(Name = "query")]
[Required(ErrorMessage = "e_query")]
public string Query { get; set; }
}
SortModel.cs
[DataContract]
public class SortModel
{
[DataMember(Name = "type")]
[Required(ErrorMessage = "e_sort_type")]
public string Type { get; set; }
[DataMember(Name = "asc")]
[Required(ErrorMessage = "e_sort_asc")]
public bool Asc { get; set; }
}
当我发送这样的东西时:
{
"sort" : {
"type" : "rank"
},
"offset" : 0,
"limit" : 10,
"query" : "stackoverflow"
}
我在ModelState中收到验证错误,这是正确的行为,但ErrorMessage为空 . 我得到的错误如下
{“在JSON中找不到必需属性'asc' . 路径'排序',第5行,位置5.”}错误键指向“model.sort”,这很好,但来自Required属性的ErrorMessage属性似乎在做没有 .
任何人都有任何关于可能导致这种情况的建议吗?