WEB API --->
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 object'中。
答案 0 :(得分:0)
通过从ModelState.IsValid跳过这些字段来实现验证。由于这些默认值字段未发布,因此ModelState.IsValid视为无效。(因为,默认值从API填充但ModelState.IsValid仅验证发布的值)。