【发布时间】:2019-09-24 15:43:26
【问题描述】:
我想知道是否可以在 FluentValidations 验证器中为某些可选参数更新已验证的模型,以防这些参数无效?
这里有一些代码:
public class Customer
{
public string FirstName { get; set; }
public string MiddleName { get; set; }
public string LastName { get; set; }
}
public class CustomerValidator : AbstractValidator<Customer>
{
public CustomerValidator()
{
RuleFor(customer => customer.FirstName).NotNull().Length(5, 100);
RuleFor(customer => customer.LastName).NotNull().Length(5, 100);
RuleFor(customer => customer.MiddleName).Length(5, 100).When(c => string.IsNullOrWhiteSpace(c.MiddleName));
}
}
我是这样使用它的:
Customer customer = new Customer { FirstName = "first name", LastName = "last name" };
CustomerValidator validator = new CustomerValidator();
var result = validator.Validate(customer);
Console.WriteLine(result.IsValid);
因此,就我而言,我想在中间名无效时将其设置为 null,并将警告保存在变量中,但仍将模型视为有效。
【问题讨论】:
-
更新传递给验证的对象不是一个好主意,Validator应该只验证输入实体,并返回验证结果就是这样。
-
更新了我的答案
标签: c# fluentvalidation