您目前已離線,請等候您的網際網路重新連線

HOW TO:使用 Visual Basic .NET 的 ASP.NET 驗證控制項

結論
.NET Framework 包含各種不同的驗證控制項,當您將這些控制項放置在 ASP.NET Web Form 網頁上時,就可以驗證輸入控制項欄位的使用者輸入,並且顯示與每個控制項相關的錯誤訊息。本文將告訴您,如何使用 ASP.NET 驗證控制項,快速且輕鬆地實作使用者輸入的用戶端及伺服器端驗證。

回到頁首

需求

下面清單列出了建議使用的硬體、軟體、網路基礎架構以及所需安裝的 Service Pack:
  • Visual Studio .NET
  • Microsoft Internet Information Server (IIS) 5.0 或更新的版本
本文假設您已熟悉下列主題:
  • Web 應用程式
  • ASP.NET
回到頁首

使用 Visual Studio .NET 的 ASP.NET 驗證控制項

驗證使用者輸入是一項很繁雜的工作。.NET Framework 所提供的驗證控制項可以用來驗證使用者輸入,並且每當在驗證控制項中發現無效的資料時,就會顯示適當的錯誤訊息。 當您必須在用戶端及伺服器上重複使用這個驗證時,這些控制項可以為您節省許多時間。此外,.NET Framework 還提供了 ValidationSummary 控制項,可以用來在畫面的一個區域中顯示網頁的所有錯誤訊息。

下列步驟將會建立可以用來提示使用者輸入使用者名稱、電子郵件地址及密碼的 ASP.NET Web 應用程式。 當使用者提交所要求的資訊時,表單上的驗證控制項就會驗證使用者所輸入的資料,並且會在畫面底端的摘要清單中,顯示所有錯誤訊息。
  1. 啟動 Visual Studio .NET。
  2. 在 Visual Basic .NET 中建立新的 ASP.NET Web 應用程式專案。
  3. 切換至 WebForm1.aspx 視窗的 HTML 檢視。
  4. 將輸入控制項及相關的訊息 (提示) 新增至您的表單中,以請求使用者輸入資料。在 [WebForm1 HTML] 視窗中,在開頭及結尾表單標記之間,複製並貼上下列程式碼。

    注意:當您將程式碼貼入 [HTML] 視窗內時,請務必將程式區段以 HTML 格式貼上。如果要執行這項操作,請選取快顯功能表上的 [貼成 HTML]
    <table><tr width=100><td>UserName:</td><td><input id=txtUserName type=text size=20 maxlength=15 runat=server/>*</td></tr><tr width=100><td>E-mail Address:<td><input id=txtEmail type=text size=35 maxlength=30 runat=server/>  (someone@microsoft.com)</td></tr><tr width=100><td>Password:</td><td><input id=txtPassword type=password size=15 maxlength=10 runat=server/>*</td></tr><tr width=100><td>Retype Password:</td><td><input id=txtConfirmPassword type=password size=15 maxlength=10 runat=server/>*</td></tr></table>					
  5. RequiredFieldValidator 控制項會確認某些值已經輸入控制項所指定的欄位中。將 RequiredFieldValidator 控制項新增至表單的 UserNamePassword 欄位中。

    在 [WebForm1 HTML] 視窗中,在 </table> 標記後面複製並貼上下列程式碼:
    <asp:RequiredFieldValidator id=valUserNameRequired ControlToValidate=txtUserName ErrorMessage="UserName is a required field." EnableClientScript=true Display=None Runat=server/>		<asp:RequiredFieldValidator id=valPasswordRequired ControlToValidate=txtPassword ErrorMessage="Password is a required field." EnableClientScript=true Display=None Runat=server/>		<asp:RequiredFieldValidator id=valConfirmPasswordRequired ControlToValidate=txtConfirmPassword ErrorMessage="Password confirmation is a required field."EnableClientScript=true Display=None Runat=server/>					
  6. 密碼欄位通常是強制使用者輸入兩次相同的密碼來進行驗證。CompareValidator 控制項會比較兩個輸入欄位中的內容,並且當兩者不相符時,就會產生錯誤訊息。使用 CompareValidator 控制項來驗證密碼欄位。

    在 [WebForm1 HTML] 視窗中,在步驟 5 中所新增的驗證控制項後面,複製並貼上下列程式碼:
    <asp:CompareValidator id=valComparePassword ControlToValidate=txtConfirmPassword ErrorMessage="Password fields must match." ControlToCompare=txtPassword Display=NoneEnableClientScript=true Runat=server/>					
  7. 某些欄位有時候可能會需要更多的自訂驗證,例如電子郵件地址欄位。RegularExpressionValidator 控制項會確定是否接著 someone@microsoft.com 的基本格式。欄位的內容是經由規則運算式進行測試的,如果沒有找到與運算式相符的內容,使用者就會收到錯誤訊息。新增 RegularExpressionValidator 控制項,以驗證使用者所提供的電子郵件地址格式。

    在 [WebForm1 HTML] 視窗中,在先前的驗證控制項後面複製並貼上下列程式碼:
    <asp:RegularExpressionValidator ID=valEmailAddressControlToValidate=txtEmail	ValidationExpression=".*@.*\..*" ErrorMessage="Email address is invalid." Display=None EnableClientScript=true Runat=server/>					
  8. 新增 Submit 按鈕,以允許使用者將網頁提交至伺服器,並驗證表單上的控制項內容。

    在 [WebForm1 HTML] 視窗中,在先前的驗證控制項後面複製並貼上下列程式碼:
    <br><input type=submit id=cmdSumbit value=submit runat=server/>					
  9. 最後,ValidationSummary 控制項可以用來顯示表單的單一區域中所發生的所有錯誤。

    在 [WebForm1 HTML] 視窗中,在 Submit 按鈕的程式碼後面複製並貼上下列程式碼:
    <br><br><asp:ValidationSummary id=ValSummary HeaderText="The following errors were found:" ShowSummary=True DisplayMode=List Runat=server/>					
  10. 按一下 [儲存]
  11. [偵錯] 功能表上按一下 [啟動],以建置並執行應用程式。

    Form1 就會顯示在畫面上。
回到頁首

驗證

  • 如果使用者按一下 [提交],但沒有輸入任何輸入值,就會顯示必須輸入這三個欄位的錯誤訊息。
  • 如果使用者提交的兩個密碼不相符,就會顯示 Password fields must match (密碼欄位必須相符) 的錯誤訊息。
  • 如果使用者提交的電子郵件地址格式不正確,則會顯示 E-mail address is invalid (電子郵件地址無效) 的錯誤訊息。
回到頁首
內容

文章識別碼:316662 - 最後檢閱時間:09/20/2004 09:26:53 - 修訂: 2.2

Microsoft ASP.NET 1.0, Microsoft Visual Basic .NET 2002 Standard Edition, Microsoft Visual Studio .NET 2002 Professional Edition, Microsoft Visual Studio .NET 2002 Enterprise Architect, Microsoft Visual Studio .NET 2002 Enterprise Developer, Microsoft Visual Studio .NET 2002 Academic Edition

  • kbhowtomaster kbinfo kbvalidation kbhowto KB316662
意見反應