簡體   English   中英

如何維護服務器端驗證和客戶端驗證

[英]How to maintain serverside validation and clientside validation

當我們在ASP.NET中有一些控件時,當然最好同時使用客戶端驗證和服務器端驗證。 客戶端出於可用性目的,而服務器端出於安全性目的。

但是,這很容易變得很丑陋。 當然,如果您的驗證是長度檢查或正則表達式,則易於維護。 但是,假設您的驗證更為高級-怎么辦?

一種方法是在服務器代碼和Javascript中實現完全相同的功能。 另一種方法是,兩者都使用相同的邏輯來調用Web服務,但隨后您的AJAX調用必須是同步的,這通常是不好的做法。

所以,我的問題是,什么是執行這兩個服務器端和客戶端驗證的最好方法?

您的ajax調用不必為了驗證而同步。 它只是需要快速:

  • 當用戶關閉某個字段時,例如,對該服務進行了ajax調用,並且該字段旁邊顯示一個微調框,表明服務器正在驗證數據。
  • 如果服務返回成功,則將微調框替換為綠色的對號。
  • 如果服務返回失敗,則顯示紅色X,可能帶有解釋性文本。
  • 當用戶最終單擊提交時,將在服務器上進行相同的驗證(是否同步)。

另一個選擇(除了使用@ user133811的同時是兩個地方)是找到一個交叉編譯器,它將您選擇的語言編譯為JavaScript。 但是,這些可能不存在。

我通常發現,在客戶端上進行復雜的驗證是不必要的,也是不可取的。 是的,讓我知道必填字段,或者是否存在用戶名(通過ajax)或簡單的內容,但是如果這是一個復雜的抵押貸款申請之類的東西,我希望我必須先提交,然后才能發現需要包括在內如果我宣布我的寵物金魚是共同簽字人(或者您知道的話),則是我的W2。

服務器和客戶端使用相同的代碼將意味着您的服務器需要使用JS。 節點可能是您可能會使用的東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM