流畅的验证与数据注释

发布于 2024-11-25 23:32:25 字数 370 浏览 1 评论 0原文

当用于 ASP.NET MVC 验证时,这两个验证包之间有哪些操作差异?他们似乎拥有相似的对象,甚至连对象名称都相似。一个与另一个相关吗?他们有什么区别?这些差异以什么方式表示不同的用例?

What are the operative differences between these two validation packages when used for ASP.NET MVC validatation? They seem to have similar objects, all the way to their object names. Is one related to another? What are their differences? In what way do these differences denote different use cases?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

岁月静好 2024-12-02 23:32:25

我更喜欢Fluent Validation

  1. 它让我可以更好地控制我的验证规则
  2. 对不同的属性进行条件验证是如此与数据注释相比要容易得多
  3. 它将验证与我的视图模型分开
  4. 单元测试 与数据注释相比要容易得多
  5. 它对大多数标准验证规则都有出色的客户端验证支持

I prefer Fluent Validation:

  1. It gives me far better control of my validation rules
  2. Doing conditional validation on different properties is so much easier compared to Data Annotations
  3. It separates the validation from my view models
  4. Unit testing is far easier compared to Data Annotations
  5. It has excellent client side validation support for most standard validation rules
少女七分熟 2024-12-02 23:32:25

注意:在评论中,原作者表示他现在更喜欢流畅的验证,

我显然更喜欢数据注释,因为......

  1. 所有验证规则都可以在代码中的一个位置配置(在模型元数据类)并且不需要在其他地方重复。
  2. 使用数据注释属性时,对客户端验证提供了出色的支持(再次强调,无需重复验证规则!)。
  3. 数据注释属性可以测试以确保它们存在。
  4. 社区创建了一些很好的附加验证属性(例如数据注释扩展 )。

NB : In the comments the original author states he now prefers fluent validation

I clearly prefer Data Annotations because ...

  1. all validation rules can be configured in one place in code (within the model metadata class) and don't need to be repeated anywhere else.
  2. there is excellent support for client side validation (again – without repetition of validation rules!) when using Data Annotation attributes.
  3. Data Annotation attributes can be tested to ensure they're there.
  4. there are nice additional validation attributes created by the community (e.g. Data Annotations Extensions).
无力看清 2024-12-02 23:32:25

根据我的观点,FluentValidation 比数据注释更好,

首先,与数据注释相比,单元测试和配置复杂的验证规则更容易。
还有一点是这个
虽然这是一个有争议的问题,但我认为数据注释不符合坚实的原则

According to my point of view, FluentValidation is better than Data Annotation

Firstly, Unit testing and configuring complex validation rules are easier compared to Data Annotations.
Another point is this
Although this is a controversial issue, I think dataannotation does not comply with the solid principles

南薇 2024-12-02 23:32:25

关于验证类与属性的一个考虑因素是,可以有一个类根据上下文使用不同的验证。例如,地址类可以在两种不同的情况下使用:

  1. 当运输需要有效地址时
  2. 当您只是尝试获取人口统计信息时

您可以使用相同的类,但验证会不同。例如,对于人口统计数据,您可能只需要国家/地区、州/省或城市,而不需要实际的街道地址。使用属性进行这种类型的验证会很困难。

我知道这是一个令人费解的例子,但它确实出现在我的项目中(可能是 1% 或 2% 的时间),值得考虑。

One consideration regarding a validation class vs. attributes, it is possible to have a class that uses different validations, depending on context. For example, an address class can be used in two different instances:

  1. When a valid address is required for shipping
  2. When you are just trying to get demographics information

You could use the same class, but the validation would be different. For demographics for example, you might only require the country or state or city, but not the actual street address. Doing this type of validation would be difficult using attributes.

I know this is a convoluted example, but it does come up in my projects (perhaps 1 or 2 percent of the time) to warrant consideration.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文