Asp.NET WebApi复杂模型验证

时间:2015-06-29 10:13:14

标签: c# validation asp.net-web-api model

我对这个问题有一个非常类似的问题(/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为空。我得到的错误如下

  

{"必需的财产' asc'在JSON中找不到。路径'排序',第5行,第5位。"}

     

错误关键点指向" model.sort"这很好,但是必需属性的ErrorMessage属性似乎什么也没做。

任何人都有任何关于可能造成这种情况的建议吗?

0 个答案:

没有答案
相关问题