C# 用于检查电子邮件地址在ASP.NET中是否有效的批注
我正在尝试验证用户输入的电子邮件地址是否有效。我已尝试使用以下我阅读的数据注释:C# 用于检查电子邮件地址在ASP.NET中是否有效的批注,c#,asp.net,asp.net-mvc,validation,asp.net-mvc-5,C#,Asp.net,Asp.net Mvc,Validation,Asp.net Mvc 5,我正在尝试验证用户输入的电子邮件地址是否有效。我已尝试使用以下我阅读的数据注释: [Required] [DataType(DataType.EmailAddress)] [DisplayName("Email Address")] public string Email { get; set; } 如您所见,我使用了[DataType(DataType.EmailAddress)]。这似乎不起作用。是否有其他方法可用于检查电子邮件地址是否有效。我已经花了108
[Required]
[DataType(DataType.EmailAddress)]
[DisplayName("Email Address")]
public string Email { get; set; }
如您所见,我使用了[DataType(DataType.EmailAddress)]。这似乎不起作用。是否有其他方法可用于检查电子邮件地址是否有效。我已经花了108个小时来处理这个问题,我觉得现在是我继续前进的时候了。System.Net.Mail.MailAddress类可以处理这个问题。如果地址的格式无法识别,它将引发FormatException。请参见MSDN上的内容:您可以使用regexp验证
[RegularExpression("/^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$/", ErrorMessage = "Lorem ipsum bla bla")]
如果使用以下标记,它将呈现html 5输入类型的电子邮件: 标记
@Html.EditorFor(m => m.Email)
@Html.ValidationMessageFor(m => m.Email)
渲染输出
<input class="text-box single-line" data-val="true"
data-val-required="The Email Address field is required."
id="Email" name="Email" type="email" value="">
这将防止html 5兼容浏览器的无效提交
根据:
Datatype.Emailaddress
源于DataTypeAttribute
并添加客户端电子邮件验证。您还需要在相应视图中设置
正如hutchonoid所指出的,这将生成一个HTML5
输入字段,允许浏览器为您进行预验证,并在移动设备上提供“电子邮件”键盘
对于服务器端valdiation,您可以使用EmailAddressAttribute
使用DataAnnotations
库:
using System.ComponentModel.DataAnnotations;
[Required]
[EmailAddress]
[DataType(DataType.EmailAddress)]
[DisplayName("Email Address")]
public String Email { get; set; }
或者,您可以使用RegularExpressionAttribute
获得客户端和服务器端验证,但不使用HTML5字段呈现。定义“有效”。定义“似乎不起作用”。你看到了吗?似乎与