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。 –