我一直認爲我應該驗證JavaScript上的表單數據,當我點擊提交按鈕之後,此外我應該驗證在服務器端C#上提交的數據。
但現在我想我可能不需要驗證JavaScript上的表單數據?由於Ajax意味着頁面不會被重新加載,這意味着JavaScript之間的錯誤消息和C#錯誤消息之間的用戶沒有區別。
我是否應該實現客戶端和服務器端驗證?
奇怪的想法??
我一直認爲我應該驗證JavaScript上的表單數據,當我點擊提交按鈕之後,此外我應該驗證在服務器端C#上提交的數據。
但現在我想我可能不需要驗證JavaScript上的表單數據?由於Ajax意味着頁面不會被重新加載,這意味着JavaScript之間的錯誤消息和C#錯誤消息之間的用戶沒有區別。
我是否應該實現客戶端和服務器端驗證?
奇怪的想法??
始終實現在服務器端驗證客戶端驗證反正有用防止往返到服務器。然後在考慮客戶端驗證之前確保驗證工作正常。原因是我看到許多人首先實現了客戶端驗證,然後忘記了服務器端驗證認爲他們正在驗證某些內容。客戶端驗證不應該被視爲驗證。它應該被看作是允許改善用戶體驗的東西(用戶無需提交整個表單即可獲得即時反饋)並保留帶寬。所以如果你想要這個額外的功能,那就繼續實施客戶端驗證。
通常,在服務器端和客戶端實現驗證是一種很好的做法(即使只有服務器端驗證是必需的)。
原因是因爲某人可以通過您的客戶端驗證來破壞您的域的完整性。
即使在驗證客戶端上的失敗
你應該總是驗證服務器端。
驗證客戶端是可選的,以增加可用性。
如果你只需要做1,服務器端肯定是要走的路。
儘管Ajax爲用戶提供了「錯覺」,表明該網頁沒有發佈,但您仍然在爲您的網站生成HTTP流量,這取決於您的託管情況,這可能會增加不必要的成本並加載您的Web服務器。
我的.02美分?今天有了所有漂亮的JS庫,沒有理由不實施客戶端驗證。
答案沒有一個是ASP驗證器相當不錯,如果您的驗證要求非常簡單。他們將始終執行服務器端驗證(除非明確禁用或忽略),默認情況下也執行客戶端驗證。當它是一個選項時,我傾向於使用它們。 – Servy