2010-02-22 114 views
1

我使用普通的asp.net c#(webforms)如何在沒有JavaScript的情況下驗證表單?

我需要建立一個簡單的表單,有一些簡單的驗證。 我需要確保表單正常工作,即使javascripts被禁用。 將Page.IsValid就足夠了,或者還有什麼我可能要考慮?

感謝

回答

5

使用默認ASP.NET驗證器與Page.IsValid結合。它們驗證客戶端服務器端。

如果已禁用JavaScript,他們仍然會驗證服務器端。

+1

我同意。然而,如果JavaScript可用於使用這些相同的控件作爲默認值,我會構建一種嘗試客戶端的方法。儘可能靠近用戶進行驗證總是最好的。 –

+0

@Nissan Fan:哦,絕對。驗證客戶端可以減少往服務器進行驗證的往返次數,並提供更加有用的體驗。但請記住,@sneg是100%正確的:即使您驗證客戶端,您也必須*驗證服務器端。 – Randolpho

+1

+1:我實際上必須向我展示一些高級開發人員,即使我禁用了客戶端腳本,ASP.NET驗證器仍在進行服務器端驗證。 – Powerlord

0

只要你有必要的驗證控件的頁面上,然後即使JavaScript是在客戶端關閉,ASP.Net應該做數據服務器端驗證並返回一個錯誤。

0

如果表單中的任何內容有特殊要求,例如驗證字段不爲空或驗證電子郵件地址是否爲電子郵件地址,也可考慮使用<asp:RequiredFieldValidator>(和related tags)。

5

客戶端驗證是可選的,服務器端驗證是強制性的。

+0

您應該始終驗證服務器端,特別是如果信息要發送到數據庫。 – Alex

1

表單驗證是確認該用戶輸入到表單字段中的數據滿足您已定義一個或多個規則的過程。

目前,要做到這一點的唯一方法是使用如JavaScript在客戶端上的服務器側的命令式語言如,或一些其他語言(例如C#)。未來的HTML版本可能包含聲明性解決方案的選項......但不要擔心。

如果JavaScript是在客戶端被禁止,則唯一的選擇是做服務器端驗證。這意味着表單的內容被提交給服務器;如果驗證失敗,服務器將以原始形式進行響應,最好是在用戶的內容就緒的情況下以及失敗的指示。

服務器端驗證可以作爲適度降級工作。首先實施服務器端驗證,然後將客戶端驗證添加爲一層。

相關問題