我想在集合中的每个元素上设置一个验证器,并且还要求该集合不为空。如果能在一行中完成这一切就好了,但我不知道是否可以或如何做到这一点。现在我最好的猜测是写两条规则(其中Terms是IReadOnlyCollection<TermData>:
RuleFor(x => x.Terms).NotEmpty();
RuleForEach(x => x.Terms).SetValidator(new TermDataValidator());
有没有办法将这两个统一为一个规则?
我编写了一项规则来检查列表中的对象 Id 是否不为空或为空。但规则并没有失败。我的代码有什么问题吗?
注意:ID 是字符串类型。
RuleFor(x => x.MyListOfObjects).Must(x => x.All(x => !string.IsNullOrWhiteSpace(x.Id)))
                        .WithMessage("The Id should not be empty or null.");
欢迎任何指点或建议。
我需要在fv的'when'子句中指定多个条件.
所以我想这样做
When(day => day.sunny.Equals(false) and  day.rain.Equals(true), () =>
    {
        //rules would go in here
    });
显然'和'不会工作,但我找不到正确语法的例子.
如何在流畅验证中编写规则以检查两个可以为空的日期,因为开始日期必须早于结束日期.
我正在思考
RuleFor(c => c.StartDate)
            .NotEmpty()
如果开始日期不为空且结束日期不为空,则进行比较
我试图验证一个字符串是5个字符长或如果它有一个前导零,它可以是6.我有这个的OR部分的问题,到目前为止我的正则表达式是^(0)[a-zA-Z0-9]{5}$但这是检查0然后5数字编号,因此没有零的5位数字无效.
是否有正则表达式只在长度为6的情况下检查前导零?
如何在电子邮件或电话号码中编写允许为空的验证规则
RuleFor(x => x.Email).NotEmpty().WithMessage(localizationService.GetResource("ContactUs.Email.Required"));
RuleFor(x => x.PhoneNumber).NotEmpty().WithMessage(localizationService.GetResource("Products.MakeAnOffer.PhoneNumber"));
例如,您可以验证电话号码或电子邮件,这些都是FV文档,但如果您需要确保经理"X"的员工尚未使用电话号码,该怎么办?我知道可以通过所有自定义验证器选项来完成此操作.但我应该在那里做吗?
如果我将这个逻辑放入一个复杂的自定义FluentValidation中,我担心我在错误的地方编写这个逻辑.传统上,我会在我通常会添加/保存的区域中将此添加到我的服务中.
由于我已经为我的视图模型设置了流畅的验证,并且我在那里进行其他类型的验证,因此将所有内容保存在一个位置似乎很诱人.但是,这意味着如果我在非Web应用程序中重用我的逻辑,则必须记住以其他方式执行这些验证器,而不是通过modelbinder自动执行IsValid().虽然我没有花费额外的时间编码来使我的项目无论如何都是模块化的.我离题了.
如何忽略空对象的 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) ");
        });
    }
}
在这里,我想仅在通过时验证记录计数。但是当我将空对象传递给 api body 时,它给出了错误
错误的请求。请求有一些无效参数或参数不够。
我正在使用 .NET ASP.NET MVC 4。对于验证,我使用 Fluent 验证。我是新来的。如何重写DefaultValidatorExtensions类的方法?
我找到了一个解决方案。
创建继承IValidatorInterceptor和AbstractValidator的BaseValidator类。但我不知道如何覆盖验证方法。
实际上我想更改任何验证方法的默认消息。该消息对于某些验证的所有属性都是通用的,因此我想重写这些验证方法而不是使用“WithMessage()”。
例如:
RuleFor(x => x.Name).NotEmpty();将返回“‘名称’不应为空。” 但我想要消息“必需”。
asp.net asp.net-mvc overriding fluentvalidation asp.net-mvc-4
c# ×4
asp.net ×3
asp.net-mvc ×3
.net ×1
asp.net-core ×1
nopcommerce ×1
overriding ×1
regex ×1
validation ×1