【发布时间】:2012-03-19 16:15:36
【问题描述】:
我有一个表示、逻辑和数据访问的 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.
}
我们有一个漂亮的通知框隐藏在母版页中,当我们调用它时,它会从 Visible false 变为 true,从而创建叠加框的“错觉”。它看起来真的很好,而且效果很好,所以我们想使用它。我们的想法是我们收集整个表单的所有错误,将它们放在一个列表中,然后将该列表发送到通知框,然后在一个漂亮的列表中为您提供所有错误。
但是 Validate() 只是大量的“if”语句,很难跟踪。这只是输入验证的本质,还是有其他更好的处理方式?
【问题讨论】:
标签: c# asp.net validation input error-handling