共用方式為


ASP.NET 伺服器控制項的用戶端驗證

更新:2007 年 11 月

如果使用者使用會支援動態 HTML (DHTML) 的瀏覽器,ASP.NET 驗證控制項就可以使用用戶端指令碼執行驗證。由於控制項可提供立即回應而不需在伺服器間來回,使用者將可感受到網頁的改善。

在大部分的情況下,您不需要對網頁或驗證控制項作任何變更,就可以使用用戶端驗證。控制項會自動偵測瀏覽器是否支援 DHTML 並依結果執行檢查。用戶端驗證會與伺服器端驗證使用相同的錯誤顯示機制。

安全性注意事項:

即使驗證工作已經在用戶端執行了,它仍會在伺服器上執行。這種方式可讓您判斷伺服器程式碼的驗證狀態,並在使用者略過用戶端驗證時提供安全性防護。

用戶端驗證的差異

如果在用戶端上執行驗證,驗證控制項會包括一些其他功能:

用戶端驗證有些細微的差異:

  • 啟用用戶端驗證時,網頁中會包含指向執行用戶端驗證的指令碼程式庫的參考。

  • 當您使用 RegularExpressionValidator 控制項時,如果有與 ECMAScript 相容的語言 (例如 Microsoft JScript),就可以在用戶端上檢查運算式。用戶端規則運算式 (Regular Expression) 和在伺服器上使用 Regex 類別完成的規則運算式檢查會有些微的不同。

  • 這個網頁中包含在送出網頁之前,用於攔截和處理 Click 事件的用戶端方法。

用戶端驗證物件模型

驗證控制項在用戶端表示的物件模型與在伺服器中幾乎完全相同。例如,您在用戶端和伺服器上都可使用相同的方法讀取驗證控制項的 IsValid 屬性,以測試驗證。

但是,在網頁層次上顯露的驗證資訊則不相同。在伺服器中,網頁支援屬性 (Property)。在伺服器端,它則包含全域變數。下表比較網頁中顯露的資訊。

用戶端網頁變數

伺服器網頁屬性

Page_IsValid

IsValid

Page_Validators (陣列):包含網頁上所有驗證控制項的參考。

Validators (集合):包含所有驗證控制項的參考。

Page_ValidationActive:指出是否應該執行驗證的布林 (Boolean) 值。將此變數設為 false,就可以用程式設計的方式關閉用戶端驗證。

(沒有對等用法)

注意事項:

所有網頁相關的驗證資訊都應視為唯讀。

傳送具有用戶端驗證錯誤的網頁

在某些情況下,即使可使用用戶端驗證,您可能會寧可不用,而只使用伺服器端驗證。例如,如果驗證所需的資訊或資源只能在伺服器中取得 (例如存取資料庫),則可能無法使用用戶端驗證。

根據預設,執行用戶端驗證時,如果網頁中有錯誤,使用者便無法將網頁傳送至伺服器。但是,您可能會發現即使發生錯誤,仍有允許使用者傳送的必要。例如,在網頁上可能會有取消按鈕或巡覽按鈕,即使有些控制項可能會驗證失敗,您仍想要使用按鈕送出網頁。如需詳細資訊,請參閱 HOW TO:停用 ASP.NET 伺服器控制項的驗證

請參閱

概念

ASP.NET 伺服器控制項的驗證類型

其他資源

驗證 ASP.NET 控制項