我无法向MVC添加电子邮件验证

时间:2015-03-01 17:39:39

标签: c# asp.net asp.net-mvc

我正在使用.Net Framework 4.0并尝试构建MVC。我尝试通过以下代码添加电子邮件验证

[EmailAddress(ErrorMessage = "Invalid Email Address")]
public string EMAIL_ADRESS { get; set; }

但它没有编译。它给出了错误"类型或命名空间名称'电子邮件'找不到(你错过了使用指令或汇编引用吗?)"

我做错了什么?

2 个答案:

答案 0 :(得分:4)

EmailAddressAttributeSystem.ComponentModel.DataAnnotations程序集内的System.ComponentModel.DataAnnotations.dll命名空间中定义,仅在.NET 4.5中可用。

所以这里的清单:

  1. 您的目标是.NET 4.5
  2. 您已在
  3. 中编写此代码的项目中引用了System.ComponentModel.DataAnnotations.dll程序集
  4. 通过在文件顶部添加using System.ComponentModel.DataAnnotations;
  5. ,您已在范围内引入了正确的命名空间

    我的核对清单中的数字3似乎不满意。这就是为什么这个属性不适合你的原因。

    如果您无法重新定位项目以使用.NET 4.5,则可以使用标准的正则表达式验证程序:

    [RegularExpression("Some magic regex you can google out to validate an email address", ErrorMessage = "Invalid Email Address")]
    public string EMAIL_ADRESS { get; set; }
    

    另外,我建议您在命名属性时使用标准C#约定并使用EmailAddress代替EMAIL_ADRESS

答案 1 :(得分:0)

Darin指出你必须使用System.ComponentModel.DataAnnotations命名空间,

您也可以使用EmailAttribute代替EmailAddress

[Email(ErrorMessage = "Invalid email")]
public string Email { get; set; }