<noframes id="tfbvr">
<listing id="tfbvr"></listing>

        <track id="tfbvr"></track>

          <th id="tfbvr"></th>

            <th id="tfbvr"></th>

              <form id="tfbvr"></form>

                <form id="tfbvr"><thead id="tfbvr"><menuitem id="tfbvr"></menuitem></thead></form>

                首頁 > 開發 > Asp > 正文

                深入講解 ASP+ 驗證(一)

                2018-10-16 21:06:56
                字體:
                來源:轉載
                供稿:網友
                Anthony Moore
                Microsoft Corporation
                2000年10月
                摘要:有關使用 ASP+ 驗證 Web 控件的詳細講解
                簡介

                這篇文章詳細講解了 ASP+ 驗證控件的工作方式。如果要生成其中包含驗證控件的復雜頁面,或是要擴展驗證框架,建議您閱讀本文。如果要學習使用驗證控件,或是要決定是否使用驗證控件,請參見“ASP+ 中的用戶輸入驗證(英文)”。


                入門

                我們知道,在整個 ASP+ 開發過程中,了解驗證非常重要??纯慈缃竦拇蠖鄶瞪虡I Web 站點,您會發現,這些站點中有許多表單,這些表單明顯是通過執行大量手寫的代碼來執行驗證。編寫驗證代碼并不是一件有趣的工作。如果要通過編寫代碼來顯示數據表或動態生成圖表,可能會很吸引人,但是沒有人可以向他的同事證實這種很“酷”的方法能夠禁止在姓名字段中輸入空值。

                因為其它一些原因,Web 應用程序的驗證也是非常麻煩的。HTML 3.2 對您可以控制的內容或可以從用戶處得到的反饋的限制很多,因此無法應用在功能更全的客戶機上可以使用的技巧,例如禁止用戶輸入某些字符,或發出嘀聲。使用瀏覽器腳本可能會產生更強大的驗證。但是這種方法很難得以證實,因為客戶瀏覽器中并非一定有腳本,并且惡意的用戶可以繞過。因此,為了保證站點安全,有必要對服務器進行同樣的檢查。

                在開發 ASP+ 時,我們的初衷是只使用一個控件來處理驗證,可能本該是一個能夠顯示錯誤的 TextBox 控件??墒堑搅嗽O計該控件時,卻發現無法實現這種愿望。我們研究了大量的數據輸入表單,試圖找到可以適用于盡可能多的表單的一種解決方案。我們發現,數據輸入表單具有許多有趣的特性:

                盡管錯誤信息或圖標經常與輸入元素相鄰,但是它們幾乎總是位于表的不同單元格中。
                頁面中經常會有一個區域來匯總所有錯誤。
                許多站點包含客戶端腳本,以便提供更快捷的反饋,同時防止白白地在與服務器之間往返。
                許多包含客戶端腳本的站點在出現錯誤時會顯示信息框。
                不僅會驗證文本輸入,還會驗證下拉列表和單選按鈕。
                如果某個字段為空,站點通常會顯示與該條目無效時不同的信息或圖標。
                許多有效性檢查可以很好地代替常用的表達式。
                驗證通常是基于兩個輸入之間的比較結果。
                90% 或 90% 以上的驗證任務是一些常見的操作,例如檢查姓名或郵政編碼。大多數站點似乎仍在重復進行這些工作。
                因為站點之間的差別通常太大,無法獲得一種完美的解決方案來處理每個站點的所有驗證任務。
                考慮了上述所有情況,最終獲得的解決方案包括五個驗證器控件、ValidationSummary 控件以及與 Page 對象的集成。同時很明顯,該解決方案需要擴展,在客戶機和服務器上均需要有一個 API 來配合。

                我們在研究進行的各種驗證時發現,我們似乎需要一個更大的工具箱。在大多數組件環境中,例如 Microsoft® ActiveX®,我們可能本來試圖將所有驗證控件的功能集成到一個控件中,處理不同模式下的不同屬性。不過,幸好 Microsoft® .NET 框架中有神奇的繼承性,可以提供一套控件來對特定的屬性進行特定的驗證,因為派生每個新控件所需的額外工作量非常小。

                這些控件所完成的大多數工作均在其公用的父級 BaseValidator 中實現。您也可以從 BaseValidator 或其它控件派生來完成各項工作。實際上,即使 BaseValidator 都懶得實現其自己的 Text 屬性,而是從 Label 屬性繼承。


                何時發生何事?

                在處理包含驗證 Web 控件的頁面時,了解事件序列非常有效。如果某個驗證條件是可選的,您需要準確了解客戶機和服務器上何時進行驗證。如果要自己編寫驗證例程,可能會非常耗時,或者有副作用。同時,了解調用驗證例程的時機也很重要。

                首先,讓我們看一下服務器。

                發表評論 共有條評論
                用戶名: 密碼:
                驗證碼: 匿名發表

                圖片精選

                <noframes id="tfbvr">
                <listing id="tfbvr"></listing>

                      <track id="tfbvr"></track>

                        <th id="tfbvr"></th>

                          <th id="tfbvr"></th>

                            <form id="tfbvr"></form>

                              <form id="tfbvr"><thead id="tfbvr"><menuitem id="tfbvr"></menuitem></thead></form>

                              亚洲国产综合无码一区二区BT下... 9420高清完整版在线观看免费 国产CHINESEHDXXXX... 黄 色 免 费 成 人 A片 欧美性受XXXX黑人XYX性爽