0

我正在创建自定义电子邮件验证属性,我的代码:

 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不工作。谁能解释一下为什么?

4

2 回答 2

1

当您使用正则表达式调用 base() 时,您正在设置错误消息。尝试将 RegularExpressionAttribute 用于基类或删除您的 EmailAttribute 类。

于 2012-08-23T07:32:47.223 回答
0

服务器端验证应该可以正常工作。我认为您正在谈论客户端验证,为此您必须IClientValidatable在自定义电子邮件属性中进行接口,并且您还必须创建 jquery 适配器。

你可以在这里看到一个例子。

于 2012-08-23T09:44:52.280 回答