我想在某个对象的属性上使用RegularExpressionAttribute
,但该对象将在ASP .NET之外使用。我还想自定义与RegularExpressionAttribute
关联的错误消息。例如,我希望错误消息是这样的:
您输入的“值”与所需的模式不符。
有没有办法指定错误消息的“值”部分?看起来我可以使用IValidatable
界面,但也许有一种我想念的简单方法?
提前致谢!
答案 0 :(得分:1)
您可以添加对System.ComponentModel.DataAnnotations
的引用并使用相同的注释。不知道如何连接验证。
答案 1 :(得分:0)
是的,有。
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);
}
}