2010-03-22 136 views
0

這裏是(我認爲)一個有趣的問題。asp.net表單驗證。服務器端或客戶端

隨着AJAX越來越普遍,我越來越喜歡做所有的表單驗證服務器端。

圖片註冊表格前AJAX。你有你所有的驗證客戶端使用通用的ASP驗證控件和驗證總結...除...檢查用戶名可用性,檢查電子郵件地址可用性,驗證碼和不是。 所以你最終得到2種驗證,並在2個不同的時刻向用戶展示2個不同的UI。 2個字出現在我的腦海裏。醜陋。不一致。

所以這裏的問題。爲什麼不做所有的驗證服務器端(使用AJAX或不)。

(我沒有使用JQuery的是,我應該?)

回答

2

即使使用Ajax,我寧願避免郵寄到服務器,如果錯誤是一個簡單的拼寫錯誤。就個人而言,如果您的客戶端和服務器端驗證導致出現不同的錯誤消息,那麼我認爲這是您的問題,而不是兩者之間的分歧。

話雖如此,沒有理由爲什麼你不能在你輸入你的文本時在服務器端使用Ajax進行驗證。我看過很多表單,通過Ajax進行「用戶名檢查」(例如),只要輸入您的請求名稱。

+0

您的意思是以與驗證摘要相同的方式呈現服務器端驗證結果。 其實我不喜歡驗證總結的有限佈局選項。實際上,我想以與展示服務器端驗證結果相同的方式呈現客戶端驗證結果,但驗證摘要不夠靈活 – Jeroen 2010-03-22 03:00:16

+0

啊,這是一個很好的觀點,是的。正因爲這個原因,我通常會拋棄內置的ASP.NET驗證控件,並始終使用jQuery構建自己的驗證控件。這是一個更多的工作,但更靈活。 – 2010-03-22 03:10:48

3

codeka是正確的。客戶端驗證可防止出現簡單錯誤的服務器往返。

服務器端始終是必需的,因爲您無法始終假定客戶端驗證是正確的。