在哪里找到EmailAddressAttribute?

3

我正在开发一款适用于Windows Store 8.1的应用程序,并需要使用电子邮件验证。我已经发现在.NET Framework 4.5中有一个名为EmailAddressAttribute的类,位于命名空间System.ComponentModel.DataAnnotations.EmailAddressAttribute下。然而,在我的代码中我无法找到它。我已经包含了DataAnnotations命名空间,但是那里并没有EmailAddressAttribute。 请问是否有人可以告诉我我错在哪里了?

3个回答

1
根据您提供的链接,它在程序集System.ComponentModel.DataAnnotations.dll中,命名空间为System.ComponentModel.DataAnnotations。您是否已添加引用?您的项目中引用是否存在任何问题?

1
我正在使用Windows Store应用程序,无法包含任何程序集。所有必需的程序集都由VS引用。 - user3530012

0
如果您正在使用.NET 4.5(VS 2012)并希望使用EmailAddressAttribute进行验证。这是使用它的方法:
[EmailAddress(ErrorMessage = "...")]

使用此方法,您可以删除DataType(EmailAddress包含DataType功能,因为它派生自DataTypeAttribute)和Regex。

验证示例:

[Display(Name = "Email address")]
[Required(ErrorMessage = "The email address is required")]
[EmailAddress(ErrorMessage = "Invalid Email Address")]
public string Email { get; set; }

谢谢你的帮助@Krunal Patil,但我觉得它不适用于验证。 - user3530012
它对我有效。我正在使用4.5框架,只是不同的是我在mvc4中进行。但如果您正在尝试验证电子邮件地址的格式,那么可能不会。 - Krunal Patil
1
是的,我正在尝试验证电子邮件地址的格式。这里应该有一个内置属性来完成这项任务http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.emailaddressattribute%28v=vs.110%29.aspx 那么它在哪里呢?我找不到类似的东西。 - user3530012
实际上,我已经包含了该命名空间,但是那里没有EmailAddressAttribute。 - user3530012
我明白你的意思,但你忽略了我想告诉你的,检查一下我编辑过的答案,那是你的解决方案。 - Krunal Patil
显示剩余6条评论

0

System.ComponentModel.DataAnnotations.EmailAddressAttribute 可在 .Net4.5 开始使用。

由于我以为我正在使用 4.5,但实际上是使用 4.0 (-.-),我建议任何阅读此内容的人重新检查项目的 .Net 版本。=)

(在解决方案资源管理器中右键单击“项目名称” -> 属性 -> 选项卡“应用程序” -> “目标框架”)

@user3530012 指出他/她正在使用 .Net 4.5,所以我猜这不是这个问题的答案,但也许可以帮助其他人。


1
我还想指出的是,这可能不是验证格式的最佳方法。有许多关于此问题的SO页面,甚至有更多的正则表达式。这里是来自Microsoft的一个示例:https://learn.microsoft.com/en-us/dotnet/standard/base-types/how-to-verify-that-strings-are-in-valid-email-format - Jan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接