我想弄清楚如何在业务对象上使用验证。用一个CustomValidator验证多个错误
到目前为止,我只在CustomValidator上看过例子,它只检查1个错误。我有两个字段DateTime输入应检查3个或更多的错误。我想通常我应该检查客户端,然后在服务器上,最后在数据库级别。
- 如果我在某个字段出现错误,我不应该离开该字段。
- 在客户端验证上,这不是一个应该导致异常的错误,因为它只是一个用户错误。但如果出现问题并且用户绕过了客户端验证,则服务器验证应该启动一个例外。
- 最后,如果我有其他例如批量更新工作,然后他们应该使用数据库验证代码。请纠正我,如果我错过了一些基本的东西!
- `dateFrom`不是空的。 (但是`dateTo`can是空的)
- `dateFrom`比`dateTo`
- `dateFrom`早期和`dateTo`是恒定的`MinDate`和`MaxDate` 内
那么应该如何我的验证看起来像客户端,服务器和数据库?
思想:
如果验证逻辑在3米不同的地方进行分离;用户界面,代码和数据对象(数据库)?当它是完全相同的代码?似乎多余?
我可以使用所有这三个检查相同的验证方法?或者我需要实现3个代码块和每个3个方法,然后如何很好地列出ValidationSummary中的所有代码?
不过这样一来,我只是确认一个错误,并列出了一个错误的验证摘要。我怎样才能使它生效3个或更多的错误,并列出所有的人都在ValidationSummary,而无需使用3个或更多的 每个验证我要检查? 对数据对象(数据库)的检查,现在的问题是不存在的,但应该检查同样的事情在客户端和服务器验证+ DB的具体规格。 –
Niike2
2010-02-22 14:32:10
ServerValidate让你完全控制什么得到验证;你可以试着改变erorrmessage财产,或发现在Page.Validators集合(你甚至可以注入验证这个集合发出一个错误的验证调整的消息,我用来做这种通过创建一个验证器总是返回一个错误并且实现了IValidator接口)。所以有使用一个customvalidator的选项;您只需编写代码来处理所有条件并输出正确的消息。 – 2010-02-22 16:48:23