Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc ASP.NET MVC的哪个验证库?_Asp.net Mvc_Validation_Data Annotations_Xval_Nhibernate Validator - Fatal编程技术网

Asp.net mvc ASP.NET MVC的哪个验证库?

Asp.net mvc ASP.NET MVC的哪个验证库?,asp.net-mvc,validation,data-annotations,xval,nhibernate-validator,Asp.net Mvc,Validation,Data Annotations,Xval,Nhibernate Validator,我正试图决定对一个新的ASP.NET MVC项目采取什么样的验证方法。(哇,有很多选择!) 该项目使用NHibernate,因此我首先考虑的是NHibernate验证器(因为它与NHibernate紧密集成)。然而,就我所见,这种紧密集成只有几个好处: 1) NHibernate生成的DB模式将包括验证的详细信息(例如,列长度将设置为验证中允许的最大值)。(但我对这并不感兴趣,因为我是手动生成模式的。) 2) 如果您试图保存不符合验证规范的数据,NHibernate将引发异常。(这对我来说似乎是

我正试图决定对一个新的ASP.NET MVC项目采取什么样的验证方法。(哇,有很多选择!)

该项目使用NHibernate,因此我首先考虑的是NHibernate验证器(因为它与NHibernate紧密集成)。然而,就我所见,这种紧密集成只有几个好处:

1) NHibernate生成的DB模式将包括验证的详细信息(例如,列长度将设置为验证中允许的最大值)。(但我对这并不感兴趣,因为我是手动生成模式的。)

2) 如果您试图保存不符合验证规范的数据,NHibernate将引发异常。(这对我来说似乎是相当多余的,因为数据在保存之前可能已经通过您选择的任何机制进行了验证)

如果NHibernate验证器有更多好处,请让我知道

我一直在读的其他图书馆包括:

  • MS数据注释
  • 城堡验证器
  • 还有别的吗
我还一直在考虑使用xVal从同一组规则中提供客户端验证。但是,我听说ASP.NET MVC v2将包含类似于xVal(与jquery集成)的现成功能?这个新包含的功能是否会使其他一些功能变得多余

所以,我基本上是在征求人们关于在这里应该走哪个方向的建议。我不想实施一个特定的计划,只想在另一个计划成为主导技术时将其撕毁

什么对你有效?你认为哪个选项有优势

谢谢

我喜欢

使用它可以非常轻松地实现客户端和服务器验证。此外,还支持对要使用的实体进行列(属性)验证

由和实施


确保您正在使用我一直在使用的插件,但仍然找不到他们无法处理的情况。

您可能对此感兴趣。我之所以这么做是因为我不喜欢xVal想法(我目前正在使用的解决方案),而且它似乎不适合复杂的验证案例,这些案例跨越了相同甚至不同类结构的多个属性。

谢谢。您使用的是什么底层验证机制?城堡?数据注释?不确定Misha,但我们使用xVal+DataAnnotations。我构建了一个T4生成器,它将发送我们的业务对象和DAL,并将适当的属性放在data members.DataAnnotations上,但老实说,我只是选择使用DataAnnotations,而不调查其他机制是否更好。所以,我不知道为什么一个会比另一个更好。数据注释让我担心的是,目前没有MS.提供的runner。xVal项目似乎提供了一个,但有一些警告:[引用runner代码注释]在提供的实例上运行与属性关联的每个ValidationAttribute,并返回与每个验证失败相关的ErrorInfo。警告:某些ValidationAttribute类型声称即使在它们不是有效的情况下也是有效的-如果您计划依赖它,此运行程序将需要检测这些特殊情况。幸运的是,其他验证运行程序…正确地报告所有错误。[/Quote]是的,这看起来确实是v2中的默认选择,不是吗。我想知道的是,他们是否只是在数据注释方面走微软的路,而不是真正的最佳实践。这看起来很有趣,谢谢你的发帖。稍后我将进行更深入的研究——乍一看,它似乎有助于业务规则验证。基本数据验证可能有点冗长,但不是什么大问题。你知道这个设置在处理国际化方面有多好吗?对于i18n,你可以将所有消息放在一个资源文件中,并在WithMessage FluentValidation方法中使用它们。我接受这个答案,因为这是一个我以前从未见过的库。Darin,你有没有关于如何集成FluentValidation和jQuery验证的信息?作为一个例子,我认为在客户端和服务器端验证的规则中使用相同的消息会很好。