.Net mvc4中的电子邮件验证

时间:2016-08-29 07:33:55

标签: c# asp.net-mvc email-validation model-validation

目前我正在使用以下代码进行电子邮件验证,但是 它会验证 dsgf @ g 邮件ID,请帮助我

[Required(ErrorMessage = "Please Enter Email Id")]
[Display(Name = "Email-Id")]
[EmailAddress(ErrorMessage = "Invalid Email Address")]
public string Cust_Email { get; set; }

3 个答案:

答案 0 :(得分:2)

EmailAddress属性会将dsgf@g标记为有效,因为它是完全有效的电子邮件地址,因此该方法没有任何问题。例如,请考虑示例username@localhost

如果它不适合您,那么您可以使用正则表达式设置自己的规则进行验证。尝试使用' RegularExpression'属性,如:

[RegularExpression("^[^@\s]+@[^@\s]+(\.[^@\s]+)+$", ErrorMessage = "Invalid Email Address")]
public string Cust_Email { get; set; }

[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 = "Invalid Email Address")]
public string Cust_Email { get; set; }

答案 1 :(得分:0)

电子邮件完全有效。

如果要验证,只需不要使用正则表达式进行验证。向他发送一个他必须输入的电子邮件地址的代码。电子邮件地址现在可以包含ä,ö,ü,à等字符......这可能真的难以匹配正确的字符... 如果你真的想用regex验证它,你可以采用RFC822标准: 你会在这里找到:http://www.ex-parrot.com/pdw/Mail-RFC822-Address.html(玩得开心 - 不想发帖,太长了)

答案 2 :(得分:0)

扩展方法怎么样。

    public static bool IsValidEmail(this string email)
{
    bool rt = false;
    try
    {
        var mail = new System.Net.Mail.MailAddress(email);
        rt = mail.Host.Contains(".");
    }
    catch { }
    return rt;
}