那么是否在ASP.NET MVC 3中构建了[Email]属性?

Naz*_*gol 11 .net validation attributes data-annotations asp.net-mvc-3

[Email]属性将被构建到ASP.NET MVC 3中,就像它在期货中一样?它现在可用还是不可用?我想这是一个相当愚蠢的问题,但我花了一些时间谷歌搜索,并没有找到任何正常的答案.

电子邮件正则表达式:

"^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$"
Run Code Online (Sandbox Code Playgroud)

ctr*_*373 26

您可以包含System.ComponentModel.DataAnnotations并使用

    [DataType(DataType.EmailAddress)]
    public String ToAddress { get; set; }
Run Code Online (Sandbox Code Playgroud)

  • 那将是因为DataType属性实际上并不提供开箱即用的任何类型的验证,这是OP所追求的.DataType属性更改HtmlHelper方法在模板中呈现模型属性的方式. (11认同)

Cod*_*odo 24

如果[Email]应该是MVC模型的数据注释(如[Required]),那么它不会内置到ASP.NET MVC 3中.

所有模型数据注释都可在名称System.ComponentModel.DataAnnotations中找到.在那里你可以找到像RequiredAttribute这样的类.

更新:

添加Email属性非常简单:

using System.ComponentModel.DataAnnotations;

namespace YourNamespace
{
    public class EmailAttribute : RegularExpressionAttribute
    {
        public EmailAttribute() : base("[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?")
        {
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

用于检查电子邮件地址的最佳或正确的正则表达式是网上单独且长时间的辩论.我不是坚持说我的是其中之一.


aba*_*hev 7

[System.ComponentModel.DataAnnotations.EmailAddressAttribute] 结果是通过正则表达式验证电子邮件(至少在4.5中)