[MVC4]Data Annotations Extensions:无法使用EmailAddress等验证特性的解决方法
本文地址:http://www.cnblogs.com/egger/p/3404159.html 欢迎转载 ,请保留此链接๑•́ ₃•̀๑!
数据注解(Data Annotations)
Web应用开发中表单验证是是一个系统必不可少的功能!我们可以通过将验证逻辑写在action方法中(不推荐)来实现。MVC提供了数据注解(Data Annotations)功能,相比前者,它更省时、提高验证逻辑的复用、减少action方法的复杂度。通过数据注解(Data Annotations) 与 jquery.validate 的结合实现服务端和客户端的双重验证。Model是自验证的, 我们要只需给Model类的各属性加上对应的验证特性(Attributes)就可以让MVC框架帮我们完成验证。甚是方便。
情景:EmailAddress特性不能用?
今天MVC4学习中按照示例给一个属性添加了 “ [EmailAddress(ErrorMessage = "We don't recognize this as a valid email address")] ”,但是程序编译报错!请看下图:
看了项目中引用的System.ComponentModel.DataAnnotations.dll中,没这个类:
不禁疑惑,难道是我配置有问题:dll引入的有问题?毕竟这里的使用不是随意的,其间尝试了许多方法,当我将项目的.NET Framework 版本由4.0改成4.5,发现错误消失了!但是这里的给的示例就是基于NET Framework 4.0!我就打开GAC中的System.ComponentModel.DataAnnotations.dll[4.0],发现有EmailAddressAttribute类的定义,然后就凌乱了[打开的方式不对吗!!!]:
然后百思不得其解,就有了这个提问 http://q.cnblogs.com/q/56482/ 。这里感谢 【Arnold】的回答,知道了怎么去解决这个问题!要想使用需要引用DataAnnotationsExtensions库。
using DataAnnotationsExtensions;
...
[Required]
[Email]
public string Email { get; set; }
通过Nuget下载DataAnnotationsExtensions类库
页面引入DataAnnotationsExtensions,将EmailAddress改成Email编辑通过,运行效果:
DataAnnotationsExtensions类库
官网传送门:http://dataannotationsextensions.org/
Github传送门:https://github.com/srkirkland/DataAnnotationsExtensions
DataAnnotationsExtensions类库对内置DataAnnotations验证特性(Required, Range, RegularExpression 和 StringLength)进行了扩展。
核心库提供的服务器端验证特性可用于在任何.NET 4.0项目。
这是类库提供的扩展特性:
总结
通过引入DataAnnotationsExtensions的类库方式实现Email格式的数据验证,而不用通过RegularExpression方式甚是方便!
但为什么 4.0中EmailAddressAttribute有定义但是为什么不能使用!难道是挖的坑到了4.5才填了!(知道真相的请科普下)
相关文章:
INTRODUCING DATA ANNOTATIONS EXTENSIONS http://weblogs.asp.net/srkirkland/archive/2011/02/23/introducing-data-annotations-extensions.aspx
最新文章
- 8Spring初步----青软S2SH(笔记)
- [转载]jquery版小型婚礼(可动态添加祝福语)
- C#、ASP.NET获取当前应用程序的绝对路径,获取程序工作路径 (转帖)
- iOS_UIImage_给图片添加水印
- 聊聊SOA面向服务架构
- 斐波那契(Fibonacci)数列的几种计算机解法
- css样式单位取整,去掉'px'
- Python 核心数据类型
- js函数中的几个特点
- javascript DOM操作 第19节
- 青否云 - 小程序待办事项vue开源系统
- 【iOS】Swift ?和 !(详解)
- java操作properties配置文件
- cocos大量对象使用动作注意事项
- Android Studio 学习(一)
- tomcat9.0 配置账户
- E325 注意 发现交换文件
- chmod 权限 命令详细用法
- SQL SERVER 2008 彻底卸载干净方法 (转)
- Spring Cloud组件