Asp.net web api ModelState.Isvalid对于布尔字段的默认值无效

Asp.net web api ModelState.Isvalid对于布尔字段的默认值无效,asp.net-web-api,modelstate,modelstatedictionary,Asp.net Web Api,Modelstate,Modelstatedictionary,WEB API---> 公共异步任务CreatePost(ChildClient c) { 如果(!ModelState.IsValid){ 扔。。。 } .. } 公共类客户端 { [必需] public bool HasBaseValue{get;set;}=true; [必需] 公共字符串名称{get;set;}=“stringvalue”; } 公共类ChildClient:客户端 { [必需] public bool HasFieldValue{get;set;}=true; [必需]

WEB API--->

公共异步任务CreatePost(ChildClient c)
{
如果(!ModelState.IsValid){
扔。。。
}
..
}
公共类客户端
{
[必需]
public bool HasBaseValue{get;set;}=true;
[必需]
公共字符串名称{get;set;}=“stringvalue”;
}
公共类ChildClient:客户端
{
[必需]
public bool HasFieldValue{get;set;}=true;
[必需]
公共字符串名称1{get;set;}=“stringvalue”;
}
Keys给出以下错误:HasBaseValue、HasFieldValue(如果未提供这两个字段)。 即使设置了默认值,为什么它仍显示在错误字段中。
注意:当我通过断点调试和检查时,“c对象”中已经填充了默认值。

通过从ModelState跳过这些字段来实现。验证有效。由于未发布这些默认值字段,因此,ModelState.IsValid视为无效。(因为,默认值是从API填充的,但ModelState.IsValid仅验证发布的值)。

通过跳过ModelState.IsValid中的这些字段来实现验证。由于未发布这些默认值字段,因此ModelState.IsValid视为无效。(因为,默认值从API填充,但ModelState.IsValid仅验证发布的值)。

值已在c中填充。weired的问题是,尽管未提供名称和名称1字段,但它并没有给出问题,而是创建问题的布尔字段。c中已经填充了值。weired的问题是,它并没有给出Name和Name1字段的问题,即使并没有提供,但布尔字段创建了一个问题。
public async Task<IHttpActionResult> CreatePost(ChildClient c)
{

if(!ModelState.IsValid)  {
throw ...
}
..

}
 public class Client
    {
        [Required]
        public bool HasBaseValue { get; set; } = true;
        [Required]
        public string Name { get; set; } = "stringvalue";
    }
    public class ChildClient : Client
    {
        [Required]
        public bool HasFieldValue { get; set; } = true;
        [Required]
        public string Name1 { get; set; } = "stringvalue";
    }