问题标签 [fluentvalidation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
774 浏览

asp.net-mvc-2 - 从 DataAnnotations 转向 Fluent Validation

现在我使用基于自定义 DataAnnotation 属性和DataAnnotationsModelValidatorProvider. 流利的验证是否更流利?:) 它可以完全取代 DataAnnotations 吗?

0 投票
1 回答
1113 浏览

asp.net-mvc-2 - 使用流利验证验证视图模型的问题

我正在尝试使用流利的验证来验证视图模型。当我发布 viewmodel 对象时,modelstate.isvalid 总是返回 false。当我检查了发布对象的值时,用于获取要在下拉列表中显示的数据的属性也正在验证中。如何解决这个问题。我是否以错误的方式做这件事,请帮忙。我是 ASP.net MVC 的新手,只是尝试在这个项目中使用流畅的验证和流畅的 NHibernate 映射。

更多详情如下:

我有一个域模型对象如下:

我创建了一个视图模型,如下所示:

模型验证器如下:

查看模型验证器如下:

视图如下:

控制器如下:

0 投票
2 回答
2014 浏览

asp.net-mvc - 域对象验证与视图模型验证

我正在使用 ASP.NET MVC 3,并且正在使用 FluentValidation 来验证我的视图模型。我只是有点担心我可能不在正确的轨道上。据我所知,模型验证应该在域对象上完成。现在使用 MVC,您可能有多个需要验证的相似视图模型。如果域对象的属性出现在多个视图模型中会发生什么?现在您要验证同一个属性两次,它们甚至可能不同步。因此,如果我有一个用户域对象,那么我想对这个对象进行验证。现在如果我有 UserAViewModel 和 UserBViewModel 会发生什么,所以现在需要进行多次验证。

在我的新闻类中,我有一个名为 Title 的属性,这是一个必填字段。在我的视图模型上,我还有一个 Title 属性,我使用 AutoMapper 来映射 News 和 NewsViewModel。所以这个验证发生了两次。什么时候进行域模型验证,什么时候进行视图模型验证?

上面的场景只是一个例子,所以请不要批评它。

0 投票
1 回答
1592 浏览

asp.net-mvc - 使用 FluentValidation 对属性进行多次验证

我正在使用 FluentValidation 和 ASP.NET MVC 3。

我只有几个关于验证的问题。

我对我的视图模型设置进行了验证,如下所示:

这是必须这样做的方式,还是我需要将其包含在 1 条语句中?

我需要对 Title 属性进行 2 次验证,命名它必须是必填字段并且不能超过 100 个字符。下面是触发验证后的源码:

它使用 2 个不同的类,每个验证类型一个。为什么是这样?现在我的表格不一致。我有另一个必需的输入字段,用于此的类是 input-validation-error,上面是 field-validation-error。

如何启用客户端验证?有人告诉我,如果我在 web.config 中设置了以下代码,那么客户端会自动打开:

不会触发客户端验证。我是否需要包含 jQuery 库或者这是为我完成的?

0 投票
1 回答
658 浏览

asp.net-mvc - 用户输入验证和业务对象验证混淆

我正试图将注意力集中在验证用户输入和验证业务对象上。假设我正在使用 Customer 对象。它具有以下属性:CustomerId、FirstName 和 LastName。FirstName 和 LastName 为必填项,长度不能超过 50 个字符。

我正在使用 ASP.NET MVC 3。我也在试验 Fluent Validation(但不必是这个验证框架)。

当我在 Create customer 视图中时,我将视图传递给 CustomerViewModel:

在 CustomerViewModelValidator 中,我如上所述设置了验证所需的规则。这一切都在视图上验证得很好。现在我有一个问题。在我的应用程序中,我有一个服务层,在这里我想应用所有应用程序逻辑。假设我想保存一个新客户,那么我将在 CustomerService 中有一个 Save customer 方法,它调用 CustomerRepository 的 Save 方法。

我可能有另一个应用程序(上述 Web 应用程序除外)将使用我的服务层。所以这意味着如果创建了一个客户对象,我将不得不验证一个客户对象。出现以下问题:

  • 我是否还需要验证 CustomerService 中的 Customer 对象以检查 FirstName 和 LastName?
  • 创建一个新的验证器类来验证 Customer 类会更好吗?还是我应该分享它?
  • 我还需要验证 CustomerId 吗?我的意思是它应该大于零,但是我将如何验证 ID 为 0 的新客户?

如果有人可以对此分享一些见解/文章,将不胜感激。

我也想添加一些业务规则,这会在哪里?我在哪里以及如何实施业务规则?

0 投票
1 回答
7029 浏览

asp.net-mvc - 流利的验证不适用于长度

我试图让 Fluent Validation 在我的客户端验证上正常工作。我正在使用 ASP.NET MVC 3。

我有一个必需的标题,它的长度必须在 1 到 100 个字符之间。因此,当我输入标题时,会显示一条不在我的规则集中的错误消息。这是我的规则集:

这是显示的错误消息:

我不确定我做错了什么。这是我的 global.asax:

0 投票
1 回答
5064 浏览

c#-4.0 - 流利的验证。继承验证类

我使用了流利的验证器。但有时我需要创建规则层次结构。例如:

我想将验证规则从 UserValidation 继承到 RootValidation。但是这段代码不起作用:

如何使用 FluentValidation 继承验证类?

0 投票
2 回答
9354 浏览

jquery - 流利的验证。错误:不显眼的客户端验证规则中的验证类型名称必须是唯一的

我得到了错误:

不显眼的客户端验证规则中的验证类型名称必须是唯一的。多次看到以下验证类型:必需。多次看到以下验证类型:必需

我使用了服务器验证。一切都很好。但现在我说要使用客户端验证,我遇到了这个问题。

这是我的验证类代码:

但是,如果我留下一个验证器 - 一切正常。我应该怎么做才能对字段进行更多的验证。

0 投票
1 回答
3035 浏览

c# - FluentValidation 即服务

我正在使用 FluentValidation 2 来验证某些实体。我想创建一个IValidationService可以传递给其他服务以允许他们执行验证的服务。我想像这样公开它:

ValidationError封装我的验证错误的类在哪里。理想情况下,我不想将特定验证器暴露给我的一项服务(例如OrderValidator)。我希望验证服务能够构建/找到正确的验证器。FV 是否内置了任何东西来定位特定类型的验证器(并且它在内部缓存)?或者,我是否必须走这IValidatorFactory条路线,然后将每个验证器与我的 IoC 容器连接起来?

0 投票
1 回答
2330 浏览

c# - 验证消息包含“{PropertyName}”而不是属性名称

我使用流利的验证和客户端不显眼的验证。

流畅的验证规则:

我收到这样的错误消息:“ {PropertyName} ”不能为空。

生成的html:

为什么 MVC 不替换PropertyName 真实字段名?