1
嵌套属性我有这些模型:FluentValidation用于在客户方
public class AssignmentTaskModel
{
public AssignmentTaskModel() { }
public AssignmentTaskModel(WorkOrderTaskDto task)
{
Task = task;
}
public WorkOrderTaskDto Task { get; set; }
}
public class AssignmentTaskModelValidator : AbstractValidator<AssignmentTaskModel>
{
public AssignmentTaskModelValidator()
{
RuleFor(x => x.Dto).Configure(x => x.ClearValidators());
RuleFor(x => x.Dto.Id).NotEmpty();
RuleFor(x => x.Dto.Employee.Id).NotEmpty();
RuleFor(x => x.Dto.EventDate).NotEmpty();
}
}
WorkOrderTaskDto包含很多领域,我有这方面的独立验证。我只想要AssignmentTask中只有Employee.Id和EventDate,而不是WorkOrderTaskDto中的其他人,这就是为什么我要在第一行清除验证器。
基本上,它运行良好,但只在服务器端。在我看来,Fluent只为非嵌套字段生成客户端验证属性。是否有可能为RuleFor(x => x.Dto.Employee.Id).NotEmpty();
进行客户端验证?
不幸的是,我无法为WorkOrderTaskDto和SetValidator()创建不同的验证器,因为在这种情况下,我将在IoC FluentValidation工厂中获取有关重复类型的异常。
谢谢你的答复。不幸的是我不能使用它,因为:1)我的Dto类在单独的程序集中,我不想向它们添加任何验证属性。 2)我在几个模型中使用WorkOrderTaskDto,并且仅在其中一个模型中需要EventDate。 –