问题标签 [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 回答
569 浏览

c# - ASP.NET MVC 中的验证。FluentValidationModelProvider

在文章http://www.thekip.nl/2011/09/22/using-fluentvalidation-for-both-domain-validation-and-validation-in-mvc-projects/之后,我还不清楚验证出现在应用程序中:在客户端使用ModelState.IsValid?或者它可以在控制器内部使用?

编辑

好的。所以对于给定的例子

ModelState对应一个Dinner实体?

谢谢!

0 投票
3 回答
5281 浏览

c# - 子属性的选择性验证 - MVC 中的流利验证

我正在使用 Fluent Validation 和 Ninject.Web.Mvc.FluentValidation 库来自动连接我的所有验证器(并使用依赖注入来创建验证器)。

我创建了以下模型:

使用以下验证器:

我的观点:

我想要完成的是拥有一个具有两个子属性的父模型。Child1 的属性是必需的,但 Child2 的属性是可选的。这在正常情况下工作正常,但是当我使用 Ninject 模块自动连接验证器时,它会检测到 Child 类有一个验证器类型,并连接 Parent 上的所有 Child 属性。

有什么办法可以在不摆脱 Ninject 模块的情况下防止这种情况发生?

0 投票
4 回答
4699 浏览

c# - FluentValidation 验证工厂和 Ninject DI 容器

我正在使用NinjectHttpApplication我的项目中定义的几个模块。

我想要的是创建FluentValidation验证工厂,如http://www.thekip.nl/2011/09/22/using-fluentvalidation-for-both-domain-validation-and-validation-in-mvc-projects/中所述。

要创建一个具体的验证工厂,我需要覆盖

然后我应该调用的方法

但我读过Global.asax不建议在范围之外使用 IKernel。

有什么选择可以做我想要的?

编辑:使用 Ninject-FluentValidation 扩展

正如雷莫所说,有一个扩展GitHubhttps://github.com/ninject/ninject.web.mvc.fluentvalidation)。扩展中有一个类:

它接受IKernel构造函数并创建实例IValidator

然后我的代码如下:

这样可行。我不知道它是否可以更好地解决。另外我不明白需要IKernelNinjectValidationFactory.

0 投票
2 回答
2240 浏览

asp.net-mvc-3 - 如何使用 FluentValidation.TestHelper 对具有 When() 条件的子验证器进行单元测试

FluentValidation.TestHelper 命名空间中的扩展方法 .ShouldHaveChildValidator() 没有采用模型的重载。然后,如何在使用 When() 子句时测试子验证器是否设置正确,如下例所示?

例如

我想断言,如果 SomeCheckbox 为真,则子验证器存在,如果 SomeCheckbox 为假,则子验证器不存在。

到目前为止,我在单元测试中有以下内容:

但这没有考虑 .When() 条件。

我注意到 FluentValidation.TestHelper 命名空间中的其他方法,例如 .ShouldHaveValidationErrorFor() 具有采用模型的重载,因此通过设置满足先决条件的模型,很容易使用 When() 子句测试简单的属性类型。

有任何想法吗?

0 投票
1 回答
793 浏览

c# - mvc api中的控制器输入验证

我已经构建了一个 api,需要验证作为参数传递给控制器​​操作的输入对象。有时,相同的输入类对于不同的动作会有不同的强制属性。

所以

我看过 fluentValidation.net 但似乎必须基于每个类而不是类/动作创建规则。

谢谢。

0 投票
3 回答
4163 浏览

asp.net-mvc-3 - FluentValidation.Net 在使用 .SetValidator() 时不会产生客户端不显眼的验证

我正在尝试让客户端验证适用于使用编辑器模板的页面。

我的视图模型的简化示例是:

子模型例如:

我的验证器是例如:

子模型验证器是例如:

通过将以下内容添加到 Application_Start(),我已经使用 MVC3 注册了 FluentValidation.Net:

这会为 Name 和 Age 这两个属性完美地生成不显眼的客户端验证,但不会为 ChildModel 上的属性生成任何内容。

有什么想法我在这里做错了吗?

更新:如果我只是用 Validator 属性注释 ChildModel 似乎可以正常工作,但是我想有条件地应用验证,因此使用 SetValidator()。

0 投票
1 回答
223 浏览

asp.net-mvc - Fluent 验证(无法启动)

我的问题是关于http://fluentvalidation.codeplex.com库。我从此链接下载 .dll 并包含在项目库FluentValidation.Mvc.dll 中

但是 resharper 不建议我一些包括变体。这意味着我包含了错误的图书馆或没有包含其他图书馆。如果我需要包含其他库,你能解释一下有什么问题并给我下载链接吗?

0 投票
1 回答
104 浏览

asp.net-mvc-3 - 如何处理多个模型绑定表单

我正在构建一个 UI 屏幕来编辑电子商务订单的详细信息。我的视图模型 (OrderModel) 拥有我需要的一切(在也是 ViewModel 的属性中),但 UI 的设计并不是为了能够一次编辑所有这些。

例如,UI 的一部分用于客户数据。另一部分用于订单详细信息,另一部分用于跟踪信息,每个部分都有自己的“保存”按钮。

我意识到我可以使用一个巨大的表单并使用隐藏的表单字段来填充不可编辑的字段,使每个“保存”按钮都发布所有数据,但这闻起来很糟糕。

我想将可编辑的块分割成更小的 ViewModel,分别发布和验证,同时保留强类型,但我不确定如何在 MVC3 中实现这一点。我需要从主视图调用的部分视图吗?

仅供参考,我正在使用带有 Razor 语法和客户端 FluentValidation 的 ASP.NET MVC 3。

0 投票
2 回答
1033 浏览

asp.net-mvc-3 - MVC3 中的条件验证

在 MVC3 中,有一种方法可以根据使用 JQuery 的下拉列表的值在字段中添加或停止验证?我一直在尝试 Fluent Validation,但没有运气。

0 投票
1 回答
1384 浏览

asp.net-mvc - 修改后如何在继承自 DefaultModelBinder 的自定义模型绑定器中重新验证模型?

我有一个继承自 DefaultModelBinder 的自定义模型绑定器。我想要它做的是在模型上设置一个不能由 DefaultModelBinder 解决的属性。它看起来像这样:

但是,由于 IFooModel 中的 Bar 属性不能为空,并且我使用 FluentValidation 的规则说,在我调用 base.BindModel 后 ModelState 将无效。

因此,我想避免在调用 base.BindModel 时验证模型,或者至少在设置 Bar 属性后清除错误并重新验证模型。

我已经尝试解析验证器并验证模型,但我似乎无法让它实际运行验证,并且它不会导致任何错误(即使它应该):

在我返回模型之前运行它之后,验证器包含一个 FluentValidationModelValidator,但是当我调用 validator.Validate 时,我没有收到任何错误。我的模型上有另一个属性,它在我之前运行 base.BindModel 时确实导致了错误,所以我希望这里会发生同样的错误。