我正在尝试为新的ASP.NET MVC项目决定采用哪种验证方法。 (哇有很多选择!)
该项目使用NHibernate,因此我首先考虑的是NHibernate Validator(因为与NHibernate的紧密集成)。但是,据我所知,这种紧密集成只有几个好处:
1)NHibernate生成的数据库模式将包含验证的详细信息(例如,列长度将设置为验证中允许的最大值)。 (但我并不感兴趣,因为我手动生成模式。)
2)如果您尝试保存不符合验证规范的数据,NHibernate将抛出异常。 (这对我来说似乎是多余的,因为数据可能已经通过您在保存前选择的任何机制进行验证)
如果NHibernate Validator有更多好处,请告诉我们!
我一直在阅读的其他图书馆包括:
我一直在考虑使用xVal从同一组规则中提供客户端验证。但是,我听说ASP.NET MVC v2会包含类似于xVal(与jquery集成)的东西吗?这种新的包含功能是否会使其他一些功能变得多余?
所以,我基本上是在询问人们对这里采取哪个方向的建议。我不想实施一个特定的计划,只有当另一个成为主导技术时才必须将其撕掉。
什么对你有用?你认为哪个选项有优势?
谢谢!
答案 0 :(得分:10)
我一直在使用FluentValidation和jQuery validation插件,但仍无法找到他们无法处理的情况。
答案 1 :(得分:5)
我喜欢xVal。
您可以使用它轻松实现客户端和服务器验证。此外,还支持您要使用的实体的列(属性)验证。
答案 2 :(得分:1)
答案 3 :(得分:1)
您可能对此delegate approach感兴趣。我是因为我不喜欢xVal的想法(我目前正在使用的解决方案)以及它似乎不适合复杂的验证案例,这些案例跨越了相同甚至不同类结构的多个属性。