2009-08-12 96 views
1

在我的asp.net mvc程序中,用戶將在一個字段中輸入日期,在另一個字段中輸入時間。時間將採用24小時模式,因此用戶可以輸入00:00 - 23:59,日期應爲典型的毫米/日/年。什麼是驗證日期和時間的最佳方式

有了驗證輸入的所有不同選項,例如客戶端的javascript/jquery/masked輸入或mvc控制器中的c#,我發現很難找出哪種方式最好。

有沒有人對此有任何建議或建議?

回答

9

始終,始終是服務器端。客戶端驗證是一個可選的好東西。

記住客戶端驗證通行證並不代表使用簡單的嗅探器/注入工具可能到達服務器端的實際數據。

0

如果您使用的是數據庫,則應使用參數化查詢或存儲過程來確保數據驗證。這也可以幫助你進行潛在的SQL注入。

您應該在兩端進行驗證,但無論您在客戶端執行什麼操作,在服務器上進行驗證都至關重要。客戶端驗證僅僅是「很好有」,並有助於用戶交互和流動。

3

同時使用!客戶端和服務器驗證很容易實現。

  • 客戶端驗證使用戶體驗更好。沒有人喜歡等待完成的回傳,告訴他們「我們的服務器不會像你外國人那樣做日期」。

  • 服務器端驗證可保護您的系統。沒有服務器希望來自制作的請求的SQL注入攻擊。儘管如此,不要將其用於用戶體驗。這純粹是爲了保護您的系統,併爲JavaScript禁用的用戶提供支持( - 公平地說,誰在乎他們的用戶體驗是什麼)。

有一些可愛的客戶端庫,讓它變得非常容易。我最喜歡的是jquery validation plugin,但http://www.livevalidation.com/也不錯。

1

我會建議使用驗證框架,如xVal for MVC 1或MVA 2的DataAnnotations的內置支持。這將以始終一致的方式爲您生成服務器和客戶端驗證。

0

兩者都強調服務器端。有時候人們會阻止javascript,或者之前的錯誤不會讓驗證腳本運行。

在服務器上執行DateTime.Parse或更好的DateTime.TryParse。

相關問題