本文地址:http://www.cnblogs.com/egger/p/3404159.html 歡迎轉載 ,請保留此連接๑•́ ₃•̀๑!html
Web應用開發中表單驗證是是一個系統必不可少的功能!咱們能夠經過將驗證邏輯寫在action方法中(不推薦)來實現。MVC提供了數據註解(Data Annotations)功能,相比前者,它更省時、提升驗證邏輯的複用、減小action方法的複雜度。經過數據註解(Data Annotations) 與 jquery.validate 的結合實現服務端和客戶端的雙重驗證。Model是自驗證的, 咱們要只需給Model類的各屬性加上對應的驗證特性(Attributes)就能夠讓MVC框架幫咱們完成驗證。甚是方便。jquery
今天MVC4學習中按照示例給一個屬性添加了 「 [EmailAddress(ErrorMessage = "We don't recognize this as a valid email address")] 」,可是程序編譯報錯!請看下圖:git
看了項目中引用的System.ComponentModel.DataAnnotations.dll中,沒這個類:github
不由疑惑,難道是我配置有問題:dll引入的有問題?畢竟這裏的使用不是隨意的,其間嘗試了許多方法,當我將項目的.NET Framework 版本由4.0改爲4.5,發現錯誤消失了!可是這裏的給的示例就是基於NET Framework 4.0!我就打開GAC中的System.ComponentModel.DataAnnotations.dll[4.0],發現有EmailAddressAttribute類的定義,而後就凌亂了[打開的方式不對嗎!!!]:web
而後百思不得其解,就有了這個提問 http://q.cnblogs.com/q/56482/ 。這裏感謝 【Arnold】的回答,知道了怎麼去解決這個問題!要想使用須要引用DataAnnotationsExtensions庫。正則表達式
using DataAnnotationsExtensions; ...
[Required] [Email] public string Email { get; set; }
經過Nuget下載DataAnnotationsExtensions類庫 服務器
頁面引入DataAnnotationsExtensions,將EmailAddress改爲Email編輯經過,運行效果:框架
官網傳送門:http://dataannotationsextensions.org/asp.net
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