我想弄清楚如何在业务对象上使用验证。
到目前为止,我只在CustomValidator上看到过仅检查 1 个错误的示例。我有两个带有 DateTime 输入的字段,应该检查 3 个或更多错误。我想通常我应该检查客户端,然后检查服务器,最后检查数据库级别。
- 如果我在某个字段上遇到错误,我应该无法离开该字段。
- 在客户端验证上,这不是应该导致异常的错误,因为它只是一个用户错误。但是如果出现问题并且用户绕过了客户端验证,服务器验证应该抛出一个异常。
- 最后,如果我有其他例如批量更新工作,那么他们应该使用数据库验证代码。如果我错过了一些基本的东西,请纠正我!
- `dateFrom` 不为空。(但 `dateTo` 可以为空)
- `dateFrom` 早于 `dateTo`
- `dateFrom` 和 `dateTo` 在常量 `MinDate` 和 `MaxDate` 内
那么我的验证应该是什么样子,客户端、服务器和数据库?
想法:
验证逻辑是否应该在 3 个不同的地方分开;UI、代码和数据对象(数据库)?什么时候是完全相同的代码?似乎多余?
我可以对所有三项检查使用相同的验证方法吗?还是我需要实现 3 个代码块和每个 3 个方法,然后如何在 ValidationSummary 中很好地列出所有内容?