在UI,BL和/或DL中重用验证代码

时间:2009-03-24 13:50:05

标签: c# .net asp.net validation

我想进行客户端验证,以便在没有往返服务器的情况下快速响应用户。

我还希望通过相同的验证来保护业务和数据访问层 上的代码。

如何在ASP.NET中实用地重用这种代码?

(注意:ASP.NET,C#3.0,.NET 3.5,Visual Studio 2008)

4 个答案:

答案 0 :(得分:1)

我不知道是否有适合常规asp.net的东西,但您可能想要检查这个开源项目是如何进行的:http://xval.codeplex.com/。注意,我还没有真正使用它,所以我不确定它有多好。

答案 1 :(得分:0)

对于用户界面:

您可以调用方法/属性Page.IsValid,然后,如果返回false,则检查验证器并手动打印其错误字符串。或者只是做你自己的错误处理,无论你认为合适。

即:

    protected void OnSomeEvent(object sender, EventArgs e)
    {
        if (!Page.IsValid)
        {
            ErrorMessage.Text = "your socks are the wrong colour";
            return;
        }
        // Continue processing.
    }

假设显示错误的简单文字。显然可以根据自己的需要量身定制。

答案 2 :(得分:0)

构建验证项目为其提供一个Web服务接口,以便您可以使用ajax调用, here is a tutorial,然后将其添加到您的商务图层和您的Dal图层。那么你的所有代码都可以使用相同的验证码。

答案 3 :(得分:0)

一个友好的警告,不要指望你的努力太成功。这个article很好地描述了你在集中和避免重复代码时所看到的神秘“业务层”的谬论。结果是,你所谈论的那种统一往往难以证明是合理的。