1

网页接口--->

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";
    }

ModelState.Keys 给出以下错误: HasBaseValue,HasFieldValue 如果两个字段都没有提供。为什么即使设置了默认值,它仍然显示在错误字段中。注意:当我通过断点进行调试和检查时,默认值已经填充到“c 对象”中。

4

1 回答 1

0

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

于 2017-11-17T20:21:35.290 回答