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

RequiredIf数据注解属性错误消息无法在字段下方显示的问题排查

自定义RequiredIf验证字段不显示错误的排查要点
  • 核心问题:ValidationResult未绑定目标字段
    你返回的ValidationResult必须明确指定错误所属的字段名称,否则MVC框架无法将错误关联到对应的ValidationMessage控件,只会把错误放到验证摘要里。
    比如在IsValid方法中,返回结果时要传入字段名数组:

    return new ValidationResult("名称不能为空", new[] { nameof(Name) });
    

    如果你之前只传了错误消息,没指定字段名,就会出现你遇到的情况——摘要显示错误,字段下方不显示。

  • 检查自定义属性的实现细节
    确认你的RequiredIf属性在重写IsValid(或GetValidationResult)时,没有遗漏字段关联的逻辑。有些自定义验证的示例代码可能只关注了逻辑判断,忘了把错误绑定到具体字段。

  • 排除视图绑定问题
    你的ValidationMessage写法@(() => Model.Name)是标准写法,但可以临时换成@Model.Name的表达式测试,确认视图没有绑定错误:

    <ValidationMessage For="@Model.Name" />
    
  • 验证控制器端的模型处理
    确保在控制器中调用ModelState.IsValid前,没有手动修改过ModelState,比如误删了字段对应的错误条目,导致字段关联丢失。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 22:52:46