我有一个正则表达式数据注释:
[StringLength(100)]
[Display(Description = "Password")]
[RegularExpression(@^((?=.*[a-z])(?=.*[A-Z])(?=.*\d)).+$)], ErrorMessage = " must include at least one upper case letter,one lower case letter and one numeric digit")]
public string Password { get; set; }
如何根据验证失败的原因显示错误消息?
如果密码为 12345678 ,则告诉用户他未包含至少1个大写和1个小写。
如果密码为 abcdefgH ,则错误消息为:“必须插入至少1位数字”。
答案 0 :(得分:1)
可以这样做的一种方法是创建自己的正则表达式验证属性。您可以扩展RegularExpressionAttribute,从而分离正则表达式的不同部分:
public class UpperAndLowerCaseAttribute : RegularExpressionAttribute
{
public UpperAndLowerCaseAttribute()
: base("**YOUR REGEX HERE**")
{
}
}
然后您可以这样使用它:
[UpperAndLowerCaseAttribute, ErrorMessage = "ERRORMESSAGE"]
public string Password { get; set; }
答案 1 :(得分:0)
我的自定义课程:
public class UpperAndLowerCaseAttribute : RegularExpressionAttribute
{
public UpperAndLowerCaseAttribute()
: base("**YOUR REGEX HERE**")
{
}
}
如何使用它:
[UpperAndLowerCaseAttribute, ErrorMessage = "ERRORMESSAGE"]
public string Password { get; set; }
将此添加到global.asax以在客户端获得识别:
DataAnnotationsModelValidatorProvider.RegisterAdapter(typeof(UpperAndLowerCaseAttribute), typeof(RegularExpressionAttributeAdapter));