asp.net-mvc – 如何为MVC创建自定义验证属性
发布时间:2020-12-15 23:04:28 所属栏目:asp.Net 来源:网络整理
导读:我想为MVC2创建一个不继承RegularExpressionAttribute但可以在客户端验证中使用的电子邮件地址的自定义验证属性.任何人都可以指向正确的方向吗? 我尝试过一些简单的东西: [AttributeUsage( AttributeTargets.Property | AttributeTargets.Field,AllowMulti
我想为MVC2创建一个不继承RegularExpressionAttribute但可以在客户端验证中使用的电子邮件地址的自定义验证属性.任何人都可以指向正确的方向吗?
我尝试过一些简单的东西: [AttributeUsage( AttributeTargets.Property | AttributeTargets.Field,AllowMultiple = false )] public class EmailAddressAttribute : RegularExpressionAttribute { public EmailAddressAttribute( ) : base( Validation.EmailAddressRegex ) { } } 但它似乎不适用于客户端.但是,如果我使用RegularExpression(Validation.EmailAddressRegex)]它似乎工作正常. 解决方法
您需要为新属性注册一个适配器才能启用客户端验证.
由于RegularExpressionAttribute已经有一个适配器,它是RegularExpressionAttributeAdapter,所有你需要做的是重用它. 使用静态构造函数将所有必需的代码保留在同一个类中. [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property,AllowMultiple = false)] public class EmailAddressAttribute : RegularExpressionAttribute { private const string pattern = @"^w+([-+.]*[w-]+)*@(w+([-.]?w+)){1,}.w{2,4}$"; static EmailAddressAttribute() { // necessary to enable client side validation DataAnnotationsModelValidatorProvider.RegisterAdapter(typeof(EmailAddressAttribute),typeof(RegularExpressionAttributeAdapter)); } public EmailAddressAttribute() : base(pattern) { } } 有关更多信息,请查看此文章解释完整的过程. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 在asp.net按钮中添加图像和文本
- asp.net – 当用户关闭浏览器等待长时间运行的Web服务调用时
- ASP.NET MVC和Angularjs与ASP.NET MVC和Reactjs
- 字符串 – 自定义Asp.net MVC 3编辑器模板没有被使用
- asp.net – 从SyndicationContent读取内容文本
- ASP.NET中没有会话状态的用户身份验证
- asp.net-mvc – 使用jQuery.get时可以指定相对URL吗?
- asp.net – 如何在使用Html.TextAreaFor时更改字体和颜色?
- asp.net-mvc – MVC授权 – 多个登录页面
- asp.net – 如何在没有文件扩展名的情况下制作ASPX网页?