标签: fluentvalidation

Fluent Validation:RuleForEach 并且还要求集合不为空?

我想在集合中的每个元素上设置一个验证器,并且还要求该集合不为空。如果能在一行中完成这一切就好了,但我不知道是否可以或如何做到这一点。现在我最好的猜测是写两条规则(其中TermsIReadOnlyCollection<TermData>

RuleFor(x => x.Terms).NotEmpty();
RuleForEach(x => x.Terms).SetValidator(new TermDataValidator());
Run Code Online (Sandbox Code Playgroud)

有没有办法将这两个统一为一个规则?

c# fluentvalidation

1
推荐指数
1
解决办法
2767
查看次数

C# 中用于检查对象 ID 列表不为 null 或空的流畅验证

我编写了一项规则来检查列表中的对象 Id 是否不为空或为空。但规则并没有失败。我的代码有什么问题吗?

注意:ID 是字符串类型。

RuleFor(x => x.MyListOfObjects).Must(x => x.All(x => !string.IsNullOrWhiteSpace(x.Id)))
                        .WithMessage("The Id should not be empty or null.");
Run Code Online (Sandbox Code Playgroud)

欢迎任何指点或建议。

c# fluentvalidation fluentvalidation-2.0

1
推荐指数
1
解决办法
3592
查看次数

条件具有流畅的验证

我需要在fv的'when'子句中指定多个条件.

所以我想这样做

When(day => day.sunny.Equals(false) and  day.rain.Equals(true), () =>
    {
        //rules would go in here
    });
Run Code Online (Sandbox Code Playgroud)

显然'和'不会工作,但我找不到正确语法的例子.

c# fluentvalidation

0
推荐指数
1
解决办法
2775
查看次数

MVC5将两个可空日期与流畅的验证进行比较

如何在流畅验证中编写规则以检查两个可以为空的日期,因为开始日期必须早于结束日期.

我正在思考

RuleFor(c => c.StartDate)
            .NotEmpty()
Run Code Online (Sandbox Code Playgroud)

如果开始日期不为空且结束日期不为空,则进行比较

asp.net-mvc fluentvalidation

0
推荐指数
1
解决办法
2086
查看次数

仅当长度为6时才使用正则表达式进行验证

我试图验证一个字符串是5个字符长或如果它有一个前导零,它可以是6.我有这个的OR部分的问题,到目前为止我的正则表达式是^(0)[a-zA-Z0-9]{5}$但这是检查0然后5数字编号,因此没有零的5位数字无效.

是否有正则表达式只在长度为6的情况下检查前导零?

c# regex asp.net fluentvalidation

0
推荐指数
1
解决办法
84
查看次数

使用流畅验证在 EITHER ... OR ... 情况下允许为空的验证规则

如何在电子邮件或电话号码中编写允许为空的验证规则

RuleFor(x => x.Email).NotEmpty().WithMessage(localizationService.GetResource("ContactUs.Email.Required"));
RuleFor(x => x.PhoneNumber).NotEmpty().WithMessage(localizationService.GetResource("Products.MakeAnOffer.PhoneNumber"));
Run Code Online (Sandbox Code Playgroud)

asp.net validation asp.net-mvc nopcommerce fluentvalidation

0
推荐指数
1
解决办法
2104
查看次数

使用FluentValidation进行更深入的数据库验证是不好的做法吗?

例如,您可以验证电话号码或电子邮件,这些都是FV文档,但如果您需要确保经理"X"的员工尚未使用电话号码,该怎么办?我知道可以通过所有自定义验证器选项来完成此操作.但我应该在那里做吗?

如果我将这个逻辑放入一个复杂的自定义FluentValidation中,我担心我在错误的地方编写这个逻辑.传统上,我会在我通常会添加/保存的区域中将此添加到我的服务中.

由于我已经为我的视图模型设置了流畅的验证,并且我在那里进行其他类型的验证,因此将所有内容保存在一个位置似乎很诱人.但是,这意味着如果我在非Web应用程序中重用我的逻辑,则必须记住以其他方式执行这些验证器,而不是通过modelbinder自动执行IsValid().虽然我没有花费额外的时间编码来使我的项目无论如何都是模块化的.我离题了.

fluentvalidation asp.net-web-api asp.net-core

0
推荐指数
1
解决办法
441
查看次数

如果对象为空,如何忽略 FluentValidation 规则

如何忽略空对象的 FluentValidation 规则。我有验证器类

public class RequestModel
{
    public int? RecordCount { get; set; } = 100;
}

public class ModelValidator : AbstractValidator<RequestModel>
{
    public ModelValidator()
    {
       When(x => x != null, () =>
       {
           RuleFor(item => item.RecordCount)
             .Cascade(CascadeMode.StopOnFirstFailure)
             .Must(x => x == null || (x.Value > 0 && x.Value <= 1000))
              .WithMessage($"Invalid Limit. Limit must be between 1 and {1000}. (inclusive) ");
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

在这里,我想仅在通过时验证记录计数。但是当我将空对象传递给 api body 时,它给出了错误

错误的请求。请求有一些无效参数或参数不够。

.net fluentvalidation asp.net-web-api

0
推荐指数
1
解决办法
1296
查看次数

如何重写 fluidvalidator 扩展方法?

我正在使用 .NET ASP.NET MVC 4。对于验证,我使用 Fluent 验证。我是新来的。如何重写DefaultValidatorExtensions类的方法?

我找到了一个解决方案。

创建继承IValidatorInterceptorAbstractValidator的BaseValidator类。但我不知道如何覆盖验证方法。

实际上我想更改任何验证方法的默认消息。该消息对于某些验证的所有属性都是通用的,因此我想重写这些验证方法而不是使用“WithMessage()”。

例如:

RuleFor(x => x.Name).NotEmpty();将返回“‘名称’不应为空。” 但我想要消息“必需”。

asp.net asp.net-mvc overriding fluentvalidation asp.net-mvc-4

0
推荐指数
1
解决办法
1467
查看次数