You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用FromBody接收数据时,JsonIgnore属性未被忽略引发验证错误

解决JsonIgnore属性不生效导致的模型验证错误

不需要专门为请求体创建新类,有几种直接修复的方案:

方案1:添加[BindNever]特性

问题根源在于[JsonIgnore]只负责JSON序列化/反序列化时忽略属性,但ASP.NET Core的模型验证([ApiController]自动触发)仍会检查Name属性的必填性。加上[BindNever]可以让模型绑定器完全跳过这个属性,验证时就不会再报错:

public class Workflow
{
    [JsonIgnore]
    [BindNever]
    public string Name { get; set; }

    public string Schedule { get; set; }

    // ...
}

方案2:将Name改为可空类型(如果启用了Nullable参考类型)

如果你的项目启用了Nullable参考类型,string默认是非可空的,模型验证会认为Name必须有值。把它改成string?即可消除必填校验:

public class Workflow
{
    [JsonIgnore]
    public string? Name { get; set; }

    public string Schedule { get; set; }

    // ...
}

补充说明

即使你在请求体里传入name参数,因为[JsonIgnore]的存在,这个值不会被反序列化到Name属性里,所以Name依然是null,模型验证还是会触发错误。上面的两种方案都能从根本上解决这个问题,不需要重构请求体类。

内容的提问来源于stack exchange,提问作者t3chb0t

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 02:57:13