我的电子邮件地址的客户端验证

时间:2012-04-01 07:56:15

标签: asp.net-mvc

我的视图模型中有这个属性:

    [CustomRequired, EmailRegex]
    [Display(Name = "KeepInformedPersonMail", ResourceType = typeof (UserResource))]
    public string Email { get; set; }

EmailRegex是这样的:

public class EmailRegexAttribute : RegularExpressionAttribute
{
    private const string EmailPattern =
        @"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$";

    public EmailRegexAttribute()
        : base(EmailPattern)
    {
        ErrorMessageResourceType = typeof(UserResource);
        ErrorMessageResourceName = "InvalidEmail";
    }
}

它适用于服务器端验证,但不适用于客户端。

如果我用以下内容替换EmailRegex,它可以在客户端和服务器端进行验证:

    [CustomRequired]
    [RegularExpression(@"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$", ErrorMessage = "Please enter a valid e-mail adress")] 
    [Display(Name = "KeepInformedPersonMail", ResourceType = typeof (UserResource))]
    public string Email { get; set; }

有人可以解释我如何继续为我的初始EmailRegex进行客户端和服务器端验证吗?

感谢。

1 个答案:

答案 0 :(得分:0)

This answer应解决您的问题