我正在创建自定义电子邮件验证属性,我的代码:
public class EmailAttribute : RegularExpressionAttribute
{
public EmailAttribute()
: base("^[a-z0-9_\\+-]+(\\.[a-z0-9_\\+-]+)*@[a-z0-9-]+(\\.[a-z0-9-]+)*\\.([a-z]{2,4})$")
{ }
}
现在我将此属性放在电子邮件属性中:
[Required(ErrorMessage = "Required")]
[Email(ErrorMessage = "Must be a valid Email")]
public string Email { get; set; }
但这不是验证电子邮件,Required
属性正常,但Email
无效。有人可以解释一下为什么吗?
答案 0 :(得分:1)
当您使用正则表达式调用base()时,您正在设置错误消息。尝试使用RegularExpressionAttribute作为基类或删除EmailAttribute类。
答案 1 :(得分:0)
服务器端验证应该可以正常工作。我认为您正在讨论客户端验证,因此您必须在自定义电子邮件属性中使用IClientValidatable
接口,并且还必须创建jquery适配器。
您可以看到示例here。