假设您有一个Web表单,其中包含您要验证的某些字段,只是字母数字的一些子集,最小或最大长度等.
您可以使用javascript在客户端验证,您可以将数据发布回服务器并通过ajax或不通过回报给用户.您可以在数据库中拥有验证规则,并以这种方式将错误消息反馈给用户.
或者以上所有的任何组合.
如果您希望单个位置保留持久保存到数据库的Web应用程序用户数据的验证规则,那么这些最佳实践,模式或一般好建议是什么?
[编辑]
我编辑了问题标题以更好地反映我的实际问题!到目前为止,一些伟大的答案顺便说一句
上述所有的:
客户端验证对用户来说更方便
但你不能相信客户端,所以代码隐藏也应该验证
类似地,数据库不能信任您验证的,因此也在那里进行验证
编辑:我看到你编辑了问题,要求验证规则的单点规范.这被称为"数据字典"(DD),并且是拥有并用于在不同层中生成验证规则的好事.然而,大多数系统都没有,所以如果你从来没有开始建造这样的东西,那就不要感觉不好;-)
现代3层系统的DD的一种可能/简单设计可能只包括 - 以及通常的最大尺寸/最小尺寸/数据类型信息 - Javascript表达/功能字段,C#汇编/类/方法字段(s )和一个sql表达式字段.可以将javascript插入到客户端验证中,C#info可以用于服务器端验证的反射加载/调用,并且sql表达式可以用于数据库验证.
虽然理论上这一切都很好,但我不知道在实践中实际做到这一点的任何真实系统[虽然它"听起来像"一个好主意].
如果你这样做,请告诉我们它是怎么回事!