jjzjj

fluentvalidator

全部标签

类层次结构的 C# FluentValidation

我有一个数据类的层次结构publicclassBase{//Fieldstobevalidated}publicclassDerived1:Base{//Morefieldstobevalidated}publicclassDerived2:Base{//Morefieldstobevalidated}在不复制基类字段规则的情况下,使用FluentValidation框架验证Derived1和Derived2的合适方法是什么? 最佳答案 publicclassDerived2Validator:AbstractValidator{p

c# - 空对象的 FluentValidation 规则

我一直在尝试找出如何创建一个FluentValidation规则,该规则在验证它的属性之前检查它正在验证的对象的实例是否不为null。我宁愿将此空验证封装在验证器中,而不是在调用代码中进行。请参阅下面的示例代码,并在需要所需逻辑的地方添加注释:namespaceMyNamespace{usingFluentValidation;publicclassCustomer{publicstringSurname{get;set;}}publicclassCustomerValidator:AbstractValidator{publicCustomerValidator(){//Ruleto

c# - 使用带有命名参数列表的 FluentValidation 的 WithMessage 方法

我正在使用FluentValidation,我想用对象的一些属性值来格式化消息。问题是我对C#中的表达式和委托(delegate)经验很少。FluentValidation已经提供了一种使用格式参数执行此操作的方法。RuleFor(x=>x.Name).NotEmpty().WithMessage("Thename{1}isnotvalidforId{0}",x=>x.Id,x=>x.Name);我想做这样的事情,以避免在更改参数顺序时必须更改消息字符串。RuleFor(x=>x.Name).NotEmpty().WithMessage("Thename{Name}isnotvalid

c# - FluentValidation 字符串 NotNull 与 NotEmpty

最初在为字符串编写验证逻辑时,我决定对任何需要的字符串使用NotEmpty。使用.NotEmpty().Length(min,max)时,这将导致在传入空字符串时返回两个错误,而不是仅返回一个错误。如何避免冗余错误? 最佳答案 .Length(min,max)如果字符串为null则不会报错,但当字符串为空且min大于0时会报错。有两种方式可以实现一个要求的字符串,最小值长度大于0。在遇到第一个错误时停止的典型方法是使用级联方法:RuleFor(o=>o.PropertyName).Cascade(CascadeMode.StopOn

c# - 使用数据库的 FluentValidation 唯一名称验证

我有一个包含名称字段的类别模型,每个类别名称都必须是唯一的。我已经进行了验证,当我尝试创建新类别时它可以正常工作,但我在尝试编辑它时遇到问题。现在它只是检查名称是否存在,当然当我尝试编辑相同类别时它确实存在。模型[Validator(typeof(CategoryValidator))]publicclassCategory{publicintID{get;set;}publicstringName{get;set;}virtualpublicICollectionImages{get;set;}}publicclassCategoryValidator:AbstractValidat

c# - 如何将 FluentValidator 挂接到 Web API?

我正在尝试将FluentValidation连接到我的MVCWEBApi项目,但它不想工作。当我使用MyController:Controller时->工作正常(ModelState.IsValid返回False)但是当我使用MyController:ApiController时......什么都没有。有没有人有如何连接它们的经验? 最佳答案 最新版FluentValidation(5.0.0.1)支持webapi只需从Nuget安装它并像这样在Global.asax中注册它:usingFluentValidation.Mvc.We

c# - FluentValidation:检查两个字段之一是否为空

我有这个模型publicclassPerson{publicintId{get;set;}publicstringFirstName{get;set;}publicstringLastName{get;set;}}我想创建一个验证,其中FirstName或LastName必须由用户填写。我安装了FluentValidation并创建了一个customvalidator类publicclassPersonValidator:AbstractValidator{publicPersonValidator(){RuleFor((person=>person.FirstName)//don't

c# - 使用 fluentvalidation 和 asp.net mvc LessThanOrEqualTo 不触发的不显眼的客户端验证

我有以下规则第一个确实可以使用不显眼的客户端验证,第二个则不行有什么想法吗?RuleFor(x=>x.StartDate).LessThanOrEqualTo(x=>x.EndDate.Value).WithLocalizedMessage(()=>CommonRes.Less_Than_Or_Equal_To,filters=>CommonRes.Start_Date,filters=>CommonRes.End_Date);RuleFor(x=>x.StartDate).GreaterThanOrEqualTo(x=>x.AbsoluteStartDate).LessThanOrE

让SpringBoot也用上Fluent Validator

前言在使用SpringBoot的时候经常需要对客户端传入的参数进行合法性的校验,校验的方法基本上都是使用SpringBoot提供的注解,有时候遇上注解不能满足需求的时候还需要在业务逻辑上进行判断。这样根本就没有实现解耦。使用方法项目maven引入com.github.mvallimjava-fluent-validator1.10.0声明实体校验器packagecom.a.b.aspect;importbr.com.fluentvalidator.AbstractValidator;importcom.a.b.LoginDto;importjava.util.function.Predicat

让SpringBoot也用上Fluent Validator

前言在使用SpringBoot的时候经常需要对客户端传入的参数进行合法性的校验,校验的方法基本上都是使用SpringBoot提供的注解,有时候遇上注解不能满足需求的时候还需要在业务逻辑上进行判断。这样根本就没有实现解耦。使用方法项目maven引入com.github.mvallimjava-fluent-validator1.10.0声明实体校验器packagecom.a.b.aspect;importbr.com.fluentvalidator.AbstractValidator;importcom.a.b.LoginDto;importjava.util.function.Predicat
12