第4章 數(shù)據(jù)驗(yàn)證與注解_第1頁(yè)
第4章 數(shù)據(jù)驗(yàn)證與注解_第2頁(yè)
第4章 數(shù)據(jù)驗(yàn)證與注解_第3頁(yè)
第4章 數(shù)據(jù)驗(yàn)證與注解_第4頁(yè)
第4章 數(shù)據(jù)驗(yàn)證與注解_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

ASP.NETMVC網(wǎng)站設(shè)計(jì)教程第4章數(shù)據(jù)驗(yàn)證與注解4.1服務(wù)器端驗(yàn)證與客戶端驗(yàn)證在ASP.NETMVCWeb開(kāi)發(fā)中,從處理驗(yàn)證的位置可以分為客戶端驗(yàn)證和服務(wù)端驗(yàn)證??蛻舳说尿?yàn)證基本上用腳本代碼實(shí)現(xiàn),如JavaScript或VBScript等。驗(yàn)證過(guò)程不提交到遠(yuǎn)程服務(wù)器,可以提供快速反饋,使用戶能夠及時(shí)察覺(jué)所填寫數(shù)據(jù)的不合法性,給人一種運(yùn)行桌面應(yīng)用程序的感覺(jué)。服務(wù)器端驗(yàn)證通常用高級(jí)語(yǔ)言編寫代碼實(shí)現(xiàn),如C#或VB等。所有的驗(yàn)證過(guò)程都交到遠(yuǎn)程服務(wù)器處理,可以用來(lái)避免出現(xiàn)一些漏洞或者異常。所有客戶端輸入的內(nèi)容,都將送往服務(wù)器處理,驗(yàn)證數(shù)據(jù)的有效性。1.客戶端驗(yàn)證的優(yōu)點(diǎn)(1)本地機(jī)驗(yàn)證、方便、快捷;(2)可以減少服務(wù)器負(fù)載;(3)縮短用戶等待時(shí)間;(4)用戶體驗(yàn)好。2.客戶端驗(yàn)證的缺點(diǎn)(1)只適用于滿足字符、數(shù)字等特點(diǎn)規(guī)則的一些應(yīng)用,無(wú)法適應(yīng)復(fù)雜的規(guī)則;(2)兼容性不好??蛻舳撕头?wù)器端驗(yàn)證各自的優(yōu)缺點(diǎn)客戶端和服務(wù)器端驗(yàn)證各自的優(yōu)缺點(diǎn)3.服務(wù)器端驗(yàn)證的優(yōu)點(diǎn)(1)安全性高;(2)兼容性強(qiáng);(3)可以對(duì)復(fù)雜的規(guī)則進(jìn)行驗(yàn)證。4.服務(wù)器端驗(yàn)證的缺點(diǎn)(1)服務(wù)器負(fù)載重;(2)用戶等待時(shí)間長(zhǎng);(3)用戶體驗(yàn)一般。4.2.1ASP.NETMVC內(nèi)置數(shù)據(jù)驗(yàn)證屬性相比于JQuery插件或者AJAX第三方驗(yàn)證,基于ASP.NETMVC框架的內(nèi)置數(shù)據(jù)驗(yàn)證在使用更加方便,下面對(duì)ASP.NETMVC內(nèi)置數(shù)據(jù)驗(yàn)證屬性進(jìn)行詳細(xì)講解。常使用的ASP.NETMVC內(nèi)置數(shù)據(jù)驗(yàn)證屬性如表4.1所示。表4.1ASP.NETMVC內(nèi)置數(shù)據(jù)驗(yàn)證屬性屬性名說(shuō)明Required必填驗(yàn)證StringLength輸入長(zhǎng)度驗(yàn)證(可用于密碼輸入字段)Range輸入取值范圍驗(yàn)證RegularExpression正則表達(dá)式驗(yàn)證,必須符合某個(gè)正則表達(dá)式Compare比較驗(yàn)證MinLength輸入字符串的最少長(zhǎng)度驗(yàn)證(可用于密碼輸入字段)MaxLength輸入字符串的最大長(zhǎng)度驗(yàn)證(可用于密碼輸入字段)Remote回調(diào)驗(yàn)證,返回值為true表示驗(yàn)證通過(guò)EmailAddress電子郵件地址驗(yàn)證Phone電話驗(yàn)證CreditCard信用卡號(hào)碼驗(yàn)證UrlURL驗(yàn)證OutputCache頁(yè)面緩存4.2.2ASP.NETMVC遠(yuǎn)程驗(yàn)證屬性Remote回調(diào)驗(yàn)證,即字段的遠(yuǎn)程驗(yàn)證。Remote屬性利用服務(wù)器端的回調(diào)函數(shù)執(zhí)行客戶端的驗(yàn)證邏輯,當(dāng)執(zhí)行到Remote特性的元數(shù)據(jù)時(shí),會(huì)自動(dòng)地調(diào)用相應(yīng)的控制器下的Action完成遠(yuǎn)程數(shù)據(jù)驗(yàn)證。與其他的驗(yàn)證屬性不同,Remote所屬的命名空間為System.Web.Mvc,并且需要在Scripts文件夾中導(dǎo)入jquery.validate.js和jquery.validate.unobtrusive.js兩個(gè)文件。Remote遠(yuǎn)程驗(yàn)證的語(yǔ)法格式如下。[Remote(stringaction,stringcontroller,屬性:ErrorMessage]參數(shù)action表示要調(diào)用的方法名,參數(shù)controller表示要調(diào)用的方法所在的控制器名,ErrorMessage屬性表示未通過(guò)驗(yàn)證時(shí)錯(cuò)誤信息。4.2.3自定義數(shù)據(jù)驗(yàn)證ASP.NETMVC除了特定的屬性驗(yàn)證,還具有強(qiáng)大的擴(kuò)展性,允許繼承某個(gè)驗(yàn)證類創(chuàng)建自定義的驗(yàn)證規(guī)則完成某些特殊的驗(yàn)證。比如在輸入部門代碼時(shí),要求不能輸入漢字,則可以創(chuàng)建自定義驗(yàn)證來(lái)實(shí)現(xiàn)。publicclassDeptAttribute:RegularExpressionAttribute{publicDeptAttribute():base(@"/[\u4E00-\u9FA5]/g"){}}創(chuàng)建完DeptAttribute自定義驗(yàn)證屬性以后,所有部門信息輸入時(shí)都可以直接使用該自定義驗(yàn)證屬性進(jìn)行驗(yàn)證。[DeptAttribute(ErrorMessage="部門代碼不能含有中文")]publicstringDeptNo{get;set;}4.3.1數(shù)據(jù)顯示注解數(shù)據(jù)注解也稱為數(shù)據(jù)顯示注解,主要作用是提升頁(yè)面關(guān)鍵字段顯示的友好性,比如字段FirstName在頁(yè)面上的顯示時(shí)設(shè)置為更合理的FirstName等。ASP.NETMVC中常用的數(shù)據(jù)顯示注解如表4.3所示。表4.3ASP.NETMVC內(nèi)置數(shù)據(jù)顯示相關(guān)注解屬性名說(shuō)明Dispaly設(shè)置字段的顯示名稱DisplayName指定本地化的字符串(習(xí)慣用語(yǔ)類)ScaffoldColumn隱藏HTML輔助方法DisplayFormat設(shè)置數(shù)據(jù)字段的格式ReadOnly設(shè)置數(shù)據(jù)字段是否只讀EditAble設(shè)置數(shù)據(jù)字段是否可編輯DataType設(shè)置屬性的數(shù)據(jù)類型UIHint設(shè)置動(dòng)態(tài)數(shù)據(jù)用來(lái)顯示數(shù)據(jù)字段的模板HiddenInput設(shè)置是否將屬性值或字段值呈現(xiàn)為隱藏的input元素4.3.2數(shù)據(jù)映射注解數(shù)據(jù)映射是指模型中的C#類向數(shù)據(jù)庫(kù)中表轉(zhuǎn)換的對(duì)應(yīng)關(guān)系,數(shù)據(jù)映射注解則表示這種轉(zhuǎn)換時(shí)的約束??梢詫#中各類中的字段對(duì)應(yīng)設(shè)置為數(shù)據(jù)表的主外鍵,也可以將字段設(shè)置為與表中的別名或者其他的對(duì)應(yīng)字段,常用的數(shù)據(jù)映射注解如表4.4所示。表4.4ASP.NETMVC常見(jiàn)的數(shù)據(jù)映射注解屬性名說(shuō)明Key主鍵字段Column數(shù)據(jù)庫(kù)列屬性映射NotMapped不映射到對(duì)應(yīng)的字段Table指定類將映射到的數(shù)據(jù)表ForeignKey表示關(guān)系中用作外鍵的屬性DatabaseGenerated指定數(shù)據(jù)庫(kù)生成屬性值的方式(EF不追蹤屬性的變化)ReadOnly(true)只讀的不可更新屬性4.4小結(jié)本

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論