Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用于检查电子邮件地址在ASP.NET中是否有效的批注_C#_Asp.net_Asp.net Mvc_Validation_Asp.net Mvc 5 - Fatal编程技术网

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字段呈现。

定义“有效”。定义“似乎不起作用”。你看到了吗?似乎与