首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用ASP.NET MVC数据类型属性验证电子邮件地址

使用ASP.NET MVC数据类型属性验证电子邮件地址
EN

Stack Overflow用户
提问于 2013-05-23 18:52:07
回答 9查看 301.3K关注 0票数 173

我在验证电子邮件时遇到了一些问题。

在我的模型中:

代码语言:javascript
复制
[Required(ErrorMessage = "Field can't be empty")]
[DataType(DataType.EmailAddress, ErrorMessage = "E-mail is not valid")]
public string ReceiverMail { get; set; }

在我看来:

代码语言:javascript
复制
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>

@Html.TextBoxFor(m => m.ReceiverMail, new { @placeholder="E-mail"}) <br />
@Html.ValidationMessageFor(m => m.ReceiverMail)

现在,当您将字段保留为空时,它会正确地显示“字段不能为空”。但是,如果您填写了无效的电子邮件地址,例如:"fwenrjfw“,则表单不会显示”电子邮件无效“。

如何获取表单以验证输入是否为电子邮件地址?我想在这方面寻求一些帮助。

EN

回答 9

Stack Overflow用户

发布于 2013-09-22 06:59:21

如果你使用的是.NET Framework4.5,那么解决方案就是使用System.ComponentModel.DataAnnotations内部的EmailAddressAttribute

您的代码应如下所示:

代码语言:javascript
复制
[Display(Name = "Email address")]
[Required(ErrorMessage = "The email address is required")]
[EmailAddress(ErrorMessage = "Invalid Email Address")]
public string Email { get; set; }
票数 351
EN

Stack Overflow用户

发布于 2013-08-17 05:30:06

尝试使用Html.EditorFor帮助器方法而不是Html.TextBoxFor

票数 40
EN

Stack Overflow用户

发布于 2013-05-23 19:07:07

您需要使用RegularExpression属性,如下所示:

代码语言:javascript
复制
[RegularExpression("^[a-zA-Z0-9_\\.-]+@([a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,6}$", ErrorMessage = "E-mail is not valid")]

并且不要删除[Required],因为[RegularExpression]不会影响空字段。

票数 32
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16712043

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档