2013-04-23 187 views
0

在asp.net中,我們對文本框進行了驗證,但這些驗證是使用javascript的客戶端。如果用戶在其瀏覽器中禁用了JavaScript並訪問了我的網站,則驗證無效。asp.net中的服務器端驗證

有誰有另一個想法?

+1

您的標題有正確的想法...驗證輸入服務器端。客戶端驗證不過是一個UI助手,它不會阻止無效數據。只有服務器端驗證可以做到這一點。作爲一個經驗法則,您絕對不應該相信客戶端發送給您的任何數據,請務必在到達服務器時檢查您的輸入。 – David 2013-04-23 20:07:50

+0

@Majid by * java *和* javascript * – Eonasdan 2013-04-23 20:15:18

+0

請參閱[ASP.NET驗證控件](http://msdn.microsoft.com/zh-cn/library/debza5t0.aspx) – jrummell 2013-04-23 20:15:37

回答

3

你是事實,你不能只依靠客戶端驗證是正確的。就我個人而言,我會投入我的時間到一個適合所有解決方案。我非常喜歡Data Annotations,因爲它將執行服務器端驗證以及自動生成客戶端。非常易於配置和實現的bu只需將屬性添加到您的類中。

3

這就是Page.Validate方法,更重要的是,Page.IsValid物業進來了。

你可以做服務器端是這樣的

if (Page.IsValid) 
{ 
    // your code 
} 

的驗證方法由具有控制自動發射CausesValidation屬性設置爲true。

Here是這個breif解釋。

+0

可以使用VS工具包中的驗證控件。 – TryingToImprove 2013-04-23 20:12:34

0

在客戶端進行驗證可提高用戶體驗(他們可以在問題領域獲得即時反饋),但服務器端的驗證對於保持數據清潔非常重要。在大多數情況下,您經常需要進行兩種類型的驗證。