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

Blazor自定义验证生效时ValidationMessage For不显示如何解决

核心原因

ValidationMessage For组件只会展示明确关联到对应属性的验证错误,你写的自定义验证特性返回错误时没有指定错误所属的属性,所以只有展示所有错误的ValidationSummary能正常显示内容,单属性的错误提示组件找不到对应信息就不会渲染。

修复方法

修改OtroCPValidation自定义验证类的返回逻辑,给ValidationResult构造函数传入第二个参数,指定错误关联的属性名即可:

public class OtroCPValidation : ValidationAttribute
{
    protected override ValidationResult IsValid(object value, ValidationContext validationContext)
    {
        var domicilio = (Domicilio)validationContext.ObjectInstance;
        // 优化判断:覆盖空字符串、空白字符的无效场景
        if (domicilio.Pais.Pais != "México" && string.IsNullOrWhiteSpace(domicilio.OtroCodigoPostal))
        {
            // 第二个参数传入关联的属性名数组,和ValidationMessage绑定的属性对应即可
            return new ValidationResult("Captura el código postal extranjero", 
                new[] { nameof(Domicilio.OtroCodigoPostal) });
        }
        return ValidationResult.Success;
    }
}

如果你的自定义验证逻辑需要同时触发多个属性的错误提示,只需要在第二个参数的数组里添加对应属性的nameof值即可。

内容的提问来源于stack exchange,提问作者Omar Alejandro Rodrguez Mrquez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 10:54:05