问题标签 [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 投票
2 回答
1321 浏览

asp.net-mvc-3 - MVC HtmlHelper vs FluentValidation 3.1:获取 ModelMetadata IsRequired 的麻烦

我为标签创建了一个 HtmlHelper,如果需要关联字段,则在该标签的名称后放置一个星号:

如果我使用 DataAnnotations 并在我的 ViewModel 中的属性上拍 [Required],我的私有 LabelHelper 中的 metadata.IsRequired 将等于 True,并且一切都会按预期工作。

但是,如果我使用 FluentValidation 3.1 并添加这样的简单规则:

...在我的 LabelHelper 元数据中。IsRequired 将被错误地设置为 false。(验证器虽然有效:您不能提交空字段,它需要是电子邮件之类的)。
其余元数据看起来正确(例如:metadata.DisplayName = "Email")。
从理论上讲,如果使用 Rule .NotNull(),FluentValidator 会在属性上添加RequiredAttribute。

供参考:我的 ViewModel:

我的控制器:

任何帮助表示赞赏。

0 投票
1 回答
1174 浏览

asp.net-mvc-3 - Ninject.MVC3 + FluentValidation + Factory 有人用过吗?

我对如何在NinjectFluentValidatior中使用工厂存有疑问。

这篇文章对我帮助很大,但我不明白如何使用工厂来实例化我的验证器

我还发现了一些其他类似的文章,但使用的是 StructureMap!

按照我执行的步骤

  1. 通过 nuget安装了NinjectFluentValidation
  2. 为工厂类安装了 Ninject.Web.Mvc.FluentValidation
  3. 现在?

安装 Ninject 时,他创建了NinjectMVC3.cs inApp_Start文件夹,因此我在方法中设置了我的依赖RegisterServices项:

Global.asax中,Application_Start方法:

FluentValidator 我有:

HumanValidator.cs

我的问题

  1. RegisterCoupleValidator工厂的课堂上,我如何没有验证器的实例?具体在new HumanValidator()

  2. HumanValidator类中,HumanValidate属性始终为空,为什么?


Obs1:我不想实例化 FluentValidator 的这些验证器,我希望 Ninject 使用这个工厂为我解决依赖关系。

Obs2:我不必访问 Ninject 内核,因为在几篇文章中我读到这将是一个反合作伙伴。

0 投票
5 回答
38464 浏览

asp.net-mvc-3 - 使用 FluentValidator 验证日期时间

这是我的ViewModel类:

创建人.cshtml

CreatePersonValidator.cs

尝试使用无效日期格式创建人员时:

尝试救人时出错

观察

在我的 CreatePersonModel 类中,该DateBirth属性是一种DateTime类型,asp.net MVC 验证已为我完成。

但我想使用 FluentValidation自定义错误消息。

由于各种原因,我不想更改属性的类型,例如:

在一个CreatePersonValidator.cs 类中,验证是检查日期是否过去:

问题

如何在不使用 DataAnnotations(使用 FluentValidator)的情况下自定义错误消息。

0 投票
1 回答
305 浏览

asp.net-mvc - Fluent Validation 在未定义验证的类上触发

我正在使用 mvc3 + fluent 验证 + ninject

我有简单的控制器和没有配置验证的模型(寻呼机)......但是在该对象上也触发了流畅的验证,因此代码中断并引发异常:

> 激活 IValidator{Pager} 时出错

我在源代码中查找并找到了这个方法,它假设检查它是否需要验证某些属性,但它只检查值是否不为空:

我想围绕这个问题有一些配置技巧,简而言之:我只想在我定义了 FV 规则的对象上触发 FV...

谢谢;)

0 投票
2 回答
1450 浏览

asp.net-mvc-3 - ASP.NET MVC3 Fluent Validation Constructor 每个请求多次命中

我有一个使用流利验证和 ninject 的 ASP.NET MVC3 网站设置。验证码有效。但是,我在验证类构造函数中设置了一个断点,我注意到当我请求使用验证的视图时,构造函数会被多次命中。基于非常基本的测试,构造函数被命中的次数似乎等于对象上存在的属性数。有没有其他人遇到过类似的事情?或者有人可以更深入地了解这种类型的验证是如何在幕后工作的?-谢谢

这是构造函数...

这是我正在使用的库/资源(我刚刚获得了 NuGet 包并根据以下两个链接中的信息配置了所有内容):

http://fluentvalidation.codeplex.com/wikipage?title=mvc https://github.com/ninject/ninject.web.mvc.fluentvalidation

0 投票
1 回答
1787 浏览

c# - 流畅的验证。找不到扩展方法

我在我的项目中添加了 FluentValidation 程序集引用。在编写简单的验证器时完全没有问题。当我尝试编写集合验证器时出现问题。VisualStudio没有看到没有SetCollectionValidator扩展方法。它也不会出现在智能感知片段中。我没有忘记包括using FlentValidation.

编辑

尽管没有智能感知提示,但在 SharpDevelop 项目中构建了相同的代码。

我究竟做错了什么?谢谢。

0 投票
2 回答
696 浏览

asp.net-mvc - 使用 FluentValidation 时将域模型验证错误映射到 ViewModel

我希望这里的人们能给我一些关于如何正确执行此操作的想法。

目前我有一个用于渲染屏幕的 ViewModel。View 模型实际上包含了几个领域模型的扁平化数据。我已经用属性装饰了 ViewModel 以进行基本验证,但真正的验证工作发生在服务层。当服务层出现验证错误时,就会出现此问题。属性的名称(即 - UserName)与 ModelState 中的条目不匹配(即 - RegistrationViewModel.UserName)。

有没有人建议如何处理这个问题?

提前致谢!

史蒂文

0 投票
4 回答
1000 浏览

asp.net-mvc-3 - 每个页面都有一个 `ViewModel`(`Create.cshtml` 和 `Edit.cshtml`)?

问题

实际上有两个相关的问题:

  1. 我应该为每个页面创建一个 ViewModel 吗?
  2. Create.cshtml如果您在为两个页面(和 )创建单个 ViewModel 类时没有问题,Edit.cshtml我如何以不同的方式验证 ViewModel(取决于正在使用的页面)

资源

视图模型

编辑.cshtml

创建.cshtml

项目验证器.cs

请注意,如果用户正在编辑现有项目,则name不应再次验证属性。

ProjectController.cs > 编辑方法

笔记

如果我为每个页面创建一个 ViewModel,则存在重复代码,因为页面具有相同的属性。

在 ViewModel 上添加一个属性,指示它正在显示的页面并不能解决我实例化 ViewModel 的问题,我使用 AutoMapper。

为了验证数据,我使用FluentValidator

谢谢大家的帮助!

0 投票
2 回答
2141 浏览

asp.net-mvc - 基于正在验证的对象的自定义属性名称

我有以下课程,例如,它们有点简化。

我在操作中收到 SuspendLinesVM,并且所有行都是从客户端动态创建的。表单中属于具体 LineInfo 的每个元素的名称都带有模板' lineid{Id}_ElementName '。所以他们以如下形式来找我:

lineid0001_LineNumber

lineid0001_SubAccountNumer

lineid0001_MobileNumber

lineid0021_LineNumber

lineid0021_SubAccountNumer

lineid0021_MobileNumber

当验证时发生一些错误时,我需要一种方法来设置失败的属性,因为它在请求中突出显示视图中的无效字段。

我在困惑的地方留下了问题。

我需要一种方法来执行 *(instance, propertyName) => return string.format('lineid_{0}_{1}', instance.Id, propertyName)*。

有任何想法吗 ?

0 投票
3 回答
4227 浏览

asp.net-mvc - FluentValidation 可以做复选框吗?

我正在使用 FluentValidation 验证 MVC 表单上的输入。

我有一个复选框。

无论我将验证规则设置为什么,它都不会验证复选框。

我知道验证正在工作,因为我有一个下拉列表可以在同一页面上进行验证。

看法

模型

我试过了

这些都不起作用。我要努力做到这一点。这是一个他妈的复选框

PS:我发现线程谈论使用 jQuery,但这是使用服务器端验证,而不是客户端。