2010-06-08 18 views
2

首先是ASP.NET驗證器,然後我們使用它們......然後團隊中的一些人在javascript中手動執行了一些操作......然後出現了一堆jquery驗證庫......然後MVC2出現了屬性驗證..2010年在ASP.NET中進行客戶端/服務器驗證的最佳方式是什麼?

我使用的應用程序有很多形式與各種驗證(有些字段需要與數據庫中的其他值進行比較,所以需要一個postball/ajax調用)..現在我有一個ASP.NET自定義驗證器和函數也在服務器端計算。

我能得到一些關於最佳工具/組合的方法來解決這個可以創建最小/最優雅的代碼的工作嗎?純服務器端解決方案? AJAX/jQuery的? jQuery的某個插件?

例如,我有2個日期..我想確保第一個日期小於第二個日期......是否有jquery驗證器封裝這個?我的感覺是,如果我可以讓jquery插件處理一半以上的基本驗證,那可能會將我的代碼減半。

+0

之前工作是真的,唯一的'寫在服務器和客戶端的一次性地方和驗證'是MVC2數據註釋? 有沒有這樣的webforms? – punkouter 2010-06-08 14:31:16

+0

或者可能沒有客戶端驗證,只是使用annotations + updatepanel使它看起來像客戶端。 – punkouter 2010-06-08 16:42:20

回答

1

DynamicData適用於asp.net mvc和動態數據。

關於webforms我只使用了asp.net驗證器的方法。這並不意味着要複製粘貼所有您可能具有的自定義驗證,即根據需要添加自定義驗證程序,只有在非常特殊的情況下才會使用附加驗證程序掛接到頁面上的方法+腳本。

根據您構建代碼的方式,我希望能夠利用DataAnnotations的一些基礎結構。我不能說這是事實,你知道asp.net上的常見問題,通常與實現細節相關聯,如果沒有更好的選項,值得一試。

更新1: 一個V快速搜索了:http://blogs.microsoft.co.il/blogs/gilf/archive/2010/04/08/building-asp-net-validator-using-data-annotations.aspx,這是基本的一塊 - 但顯示的方式,您可以利用在網絡表單中的數據的註釋(服務器端)。

更新2:另一個與上述相同的方法,但不包括服務器&客戶端驗證: http://geeks.ms/blogs/rcarreras/archive/2010/04/20/validando-asp-net-web-form-con-dataannotation-en-ambos-lado-cliente-y-servidor.aspx。再次簡單,但肯定可以作爲根據註釋獲得更完整的自動驗證的基礎。 注意:取決於你使用的是什麼,你可以讓驗證器自動添加到適當的位置,但是我必須警告,如果你沒有使用動態添加的驗證器之前,它可能會非常棘手,因爲它不會在

+0

也許最簡單的方法是使用serverAnnotations爲服務器端和jQuery爲客戶端? 數據註解的客戶端版本看起來相當複雜 – punkouter 2010-06-08 15:51:30

+0

是的,示例很簡單,可以基於您可用的庫進行調整。 – eglasius 2010-06-08 17:05:30

1

如果您使用的是ASP.NET MVC,我推薦使用全部的DataAnnotations屬性。有一些「簡單的」包含了必填字段和長度,您可以編寫自己的自定義驗證器來比較兩個字段和其他字段。 Phil Haack作爲一個偉大的article關於ASP.NET MVC中的自定義驗證器。

+0

我們正在使用webforms(儘管我希望有朝一日使用MVC,因爲如果這些註釋驗證可以用乾淨的方式完成,比較喜歡它們) – punkouter 2010-06-08 14:28:58

1

我通常使用jQuery的RSV插件http://plugins.jquery.com/project/RSV做我確認作業的正常的東西,和我的代碼我自己的jQuery的功能更復雜的驗證(需要Ajax調用和東西) 並在服務器上,我總是重新驗證側。

+0

謝謝。這看起來像是客戶端情況的良好開端 – punkouter 2010-06-08 15:45:08

相關問題