我正试图打破我编写糟糕代码的一些旧习惯。其中之一是放置验证代码的位置。我认为验证不应该在表示层中。或者那里可能有一些验证?
这是我以前做的一个例子
protected void SaveBtn_Click(object sender, EventArgs e)
{
Item itm = new Item();
itm.Name = txtName.Text;
if(String.IsNullOrEmpty(itm.Name))
{
//reject
}
else
{
ItemBLL.Save(itm); //no more validation here
}
}
或者
public class ItemBLL
{
public static int Save(Item itm)
{
//no more validation in .aspx.vb
if(String.IsNullOrEmpty(itm.Name))
{
//reject
}
else
{
//Save item
}
}
}
我一直在使用第一种方法,我正在考虑改用第二种方法,但我无法预料问题会是什么,也无法预料其中一种方法的优势。请提出建议,即使是更好的方法
更新: 我同意为了用户的简单验证(例如常见错误)应该在演示文稿(.aspx)中完成(使用javascript,jQuery)。
一些业务逻辑验证也应该驻留在 BLL 中以实现可移植性和可重用性。
这是否意味着我们可以跳过代码隐藏(.aspx.vb 或 .aspx.cs)中的验证?