為了更好的創建交互式Web應用程序,加強應用程序安全性(例如,防止腳本入侵等),開發人員應該對用戶輸入的部分提供驗證功能。過去,輸入驗證功能基本由自行編寫的客戶端腳本來完成這種實現方法既繁瑣,又容易出現錯誤。隨著技術的發展,ASP.NET技術通過提供一系列驗證控件來克服這些缺點,例如,RequiredFieldValidator、CompareValidator、RangeValidator等。使用這些驗證控件,開發人員可以向Web頁面添加輸入驗證功能,例如定義驗證規則、定義向用戶顯示的錯誤信息內容等。通常情況下,ASP.NET提供的驗證控件可以滿足大多數Web應用的需要,然而,在某些情況下,內置的驗證控件還是無法完成應用需求對數據輸入的特殊要求。為了彌補這個缺憾,ASP.NET 2.0定義了一個可以在控件開發中使用的可擴充驗證框架。開發人員可以通過使用這個驗證框架自行定義驗證控件。本文將對實現驗證控件的重要方面進行介紹,內容包括內置驗證控件概述,驗證框架等等。
1.內置驗證控件概述
驗證控件完成對輸入數據進行驗證的功能。通過將驗證控件和輸入控件關聯,開發人員可以向Web頁面添加輸入驗證功能。另外,還提供了自定義驗證規則的方法和自定義錯誤信息的內容和顯示方式等。本節將概括性介紹ASP.NET內置驗證控件。
ASP.NET 2.0共包含5個內置驗證控件:RequiredFieldValidator、CompareValidator、RangeValidator、RegularExpressionValidator和CustomValidator,這些控件直接或者間接派生自System.Web.UI.WebControls.BaseValidator。每個驗證控件執行特定類型的驗證,並且當驗證失敗時顯示自定義消息。下面簡要介紹了這5個驗證控件。
(1)RequiredFieldValidator控件
該控件用於確保被驗證的控件中包含一個值。
(2)CompareValidator控件
該控件使用比較運算符(小於、等於、大於等)將用戶輸入與一個常量值或另一控件的屬性值進行比較。
(3)RangeValidator控件
該控件用於檢查用戶的輸入是否在指定的上下限內。可以檢查數字對、字母字符對和日期對的范圍。
(4)RegularExpressionValidator控件
該控件用於檢查項與正則表達式定義的模式是否匹配。這種驗證類型允許檢查可預知的字符序列,如身份證號碼、電子郵件地址、電話號碼、郵政編碼等中的字符序列。
(5)CustomValidator控件
該控件用於使用您自己編寫的驗證邏輯檢查用戶輸入。這種驗證類型允許檢查在運行時導出的值。
除以上內置驗證控件外,ASP.NET 2.0還提供了一個用於顯示錯誤信息概要的控件ValidationSummary。該控件的目的是將來自頁上所有驗證控件的錯誤信息,一起顯示在一個位置,例如,一個消息框或者一個錯誤信息列表。ValidationSummary控件不執行驗證,但是它可以和所有驗證控件一起使用,更准確的說,ValidationSummary可以和上述5個內置驗證控件以及自定義驗證控件,共同完成驗證功能。
在Web頁面中使用驗證控件,我們需要注意以下幾個關鍵的方面。
首先,將驗證控件與輸入控件關聯起來,然後,根據不同類型驗證控件的特征定義相關屬性。例如:所有驗證控件都要通過ContrlToValidate屬性進行關聯設置,都必須通過ErrorMessage屬性定義錯誤信息內容;對於范圍檢查控件RangeValidator來講,必須定義MaximumValue和MinimumValue屬性來指定有效范圍的最小值和最大值;對於模式匹配控件RegularExpressionValidator來講,必須使用ValidationExpression屬性指定用於驗證輸入控件的正則表達式。以上介紹的使用方式,很可能使得一個輸入控件關聯多個驗證控件,這在ASP.NET 2.0中是允許的。