我有一個3層的演示文稿,邏輯和數據訪問系統。在我的邏輯層中,我有一個Validate()方法,用於確保即將轉發到數據訪問層的數據對數據庫有效(沒有空值,不允許空值,等等)。任何更好的方式來處理用戶輸入驗證?
最重要的是,在.aspx表示層中,我們有一些用戶友好的錯誤檢查和驗證,直接檢查Web窗體上的控件。我的問題是代碼背後的ValidateInput()方法檢查控件,它有幾百行長,真的很煩人。用於檢查數據的代碼遠遠長於實際工作的代碼。
我得看起來像這樣:
private List<string> ValidateInput()
{
List<string> errormessages = new List<string>();
if (LastNameETextBox.Text.Trim() == String.Empty)
{
errormessages.Add("Last name required.");
}
if (FirstNameETextBox.Text.Trim() == String.Empty)
{
errormessages.Add("First name required.");
}
//etc. etc.
}
我們隱藏在母版頁一個漂亮的風格的通知框,會從上可見的僞變成真的,當我們調用它,創造了「幻覺」一個重疊的盒子。它看起來非常好,工作得很好,所以我們想要使用它。我們的想法是,我們收集整個表單的所有錯誤,將它們放在一個列表中,然後將該列表發送到通知框,然後在一個不錯的列表中給出所有錯誤。
但Validate()只是一個「if」語句的折磨量,很難跟蹤。這只是輸入驗證的本質,還是有其他更好的方法來處理這個問題?
啊,我明白你在那裏做什麼。謝謝!這絕對是我現在擁有的改進。 – CptSupermrkt 2012-03-01 06:50:09
如果您滿意請接受答案:) – kbvishnu 2012-03-01 06:52:28