2008-09-19 158 views
9

是否有任何簡單而智能的方法來保持客戶端和服務器端驗證規則的同步?ASP.NET:同步客戶端和服務器端驗證規則

在客戶端我們有JavaScript,可能是某種類似jQuery或YUI的框架。

在服務器端我們有ASP.NET WebForms或ASP.NET MVC。

什麼是有效的事情,如:

  • 正確的電子郵件的地址
  • 正確的家庭地址和郵編
  • 正確的信用卡號碼

等等。

回答

2

< asp:RegularExpressionValidator ... >(和其他asp.net驗證器)實現客戶端JavaScript和服務器端檢查到相同的規則。

+0

它做什麼服務器端檢查?以及這與ASP.NET MVC如何工作。 – 2008-09-19 14:43:06

+0

ASP.NET中的所有驗證器都可以在客戶端和服務器端進行工作,因爲只有進行客戶端驗證纔是一個巨大的安全漏洞。我還沒有嘗試在MVC中使用驗證器。 – 2008-09-30 16:54:37

1

編寫體現驗證規則的大量常用測試數據語料庫,並根據此常見數據對驗證程序進行單元測試。

當您的規則發生變化時,您可以通過更新測試數據並進行測試來反映此情況,直到所有內容再次變爲綠色。

1

我一直使用內置的驗證器。例如,如果您使用RegularExpressionValidator並提供ValidationExpression,它將在客戶端(如果可用)和服務器端使用相同的代碼進行驗證。

您可以通過派生自BaseValidatior編寫自己的自定義驗證器。這樣做可以讓您通過重寫EvaluteIsValid來創建服務器Valdiation。如果有必要,您可以稍後添加客戶端驗證。

1

這不是真實的解決方案,但請查看CodePlex上的Axial project。它是一個將C#轉換爲JavaScript的項目,並且具有一個控件,可讓您使用相同的代碼進行服務器端驗證和客戶端驗證。它還沒有準備好生產,但我很好奇,看看這是你想要的。

1

xVAL比企業庫驗證更容易,並且處理客戶端和服務器的模型綁定驗證。

相關問題