我想RegularExpressionAttribute
在某个对象的属性上使用,但该对象将在 ASP .NET 之外使用。我还想自定义与RegularExpressionAttribute
. 例如,我希望错误消息是这样的:
您输入的“值”与所需的模式不匹配。
有没有办法指定错误消息的“值”部分?看起来我可以使用IValidatable
界面,但也许有一种我错过的简单方法?
提前致谢!
我想RegularExpressionAttribute
在某个对象的属性上使用,但该对象将在 ASP .NET 之外使用。我还想自定义与RegularExpressionAttribute
. 例如,我希望错误消息是这样的:
您输入的“值”与所需的模式不匹配。
有没有办法指定错误消息的“值”部分?看起来我可以使用IValidatable
界面,但也许有一种我错过的简单方法?
提前致谢!
您可以添加对相同注释的引用System.ComponentModel.DataAnnotations
并使用相同的注释。不过,不确定如何连接验证。
就在这里。
RegularExpressionAttribute 继承自 ValidationAttribute。这具有 ErrorMessage、ErrorMessageResourceName 和 ErrorMessageResourceType 等属性。
这些值可以直接应用于您应用它们的地方:
[RegularExpressionAttribute(Pattern="xxx", ErrorMessage = "My custom message.")]
当您希望将值混合为响应的一部分时,您可以通过从标准属性继承来创建自己的属性。这是一个示例:
public class MyStringLengthAttribute : StringLengthAttribute
{
private string _value;
public override string FormatErrorMessage(string name)
{
return string.Format("Value {0} is not valid.", value);
}
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
_value = value.ToString();
return base.IsValid(value, validationContext);
}
}