如何更改内置 ValidationAttributes 的默认错误信息?

How to change the default error message of built-in ValidationAttributes?

我想用我自己的消息替换默认错误消息,例如 RequiredAttributeRegularExpressionAttribute,这样我就不需要在以下位置指定显式​​ ErrorMessage属性用法。

编辑:句子的最后一部分意味着我知道可以在属性使用时指定我自己的 ErrorMessage,我想避免它以保持项目干燥。

有可能吗?我在 .NET 库中没有找到任何相关的 属性,我目前不知道如何替换存储默认消息的 .NET 资源。

只需创建您自己的具有所需默认消息的 [Required] 属性版本。如果您只想使用自定义错误消息,请将其继承自 RequiredAttribute,这样您就可以利用相同的 IsValid 逻辑

public class MyRequired : RequiredAttribute
{
    public MyRequired()
    {
        this.ErrorMessage = "Custom Validation Error Message.";
    }
}

如果您需要更好地控制其他验证行为,您可以 create your own DataAnnotation Attributes

public class MyRequired : ValidationAttribute
{
    public MyRequired() : base("My Custom Message")
    {

    }

    public override bool IsValid(object value)
    {
        //Your custom validation logic
        return (value != null);
    }
}