0

我试图查看是否有一种方法可以使用 FluentValidation,而无需为我的应用程序中的每个对象类型显式创建验证模型。

这在技术上和目前是否可行?

更新

换句话说,FluentValidation 是否可以在没有 IValidator 上下文的情况下验证规则?相反,我想传入要验证的项目实例并使用即时构建的验证规则。

解决

我能够通过一种黑客解决方案来解决。以下是我所做的基本细节:

1)我创建了一个类(GenericModel),它具有代表模型中属性的对象集合。2)我创建了一个继承自 AbstractValidator 的验证器类。3) 基于 GenericModel 的“属性对象”集合 + 关于每个属性的验证规则和错误消息的附加元数据,我能够在运行时添加 FluentValues 规则。4)。在 EditForm 我处理了 OnSubmit 事件。在那个事件处理程序中,我通过 FluentValidation 的 ValidateAsync() 方法执行验证。5)。最后,我遍历验证结果并使用适当的 CSS、错误消息、突出显示...等更新每个字段。

4

1 回答 1

0

我能够通过一种黑客解决方案来解决。以下是我所做的基本细节:

  1. 我创建了一个类(GenericModel),它具有代表模型中属性的对象集合。

  2. 我创建了一个继承自 AbstractValidator 的验证器类。

  3. 基于 GenericModel 的“属性对象”集合 + 关于每个属性的验证规则和错误消息的附加元数据,我能够在运行时添加 FluentValues 规则。

  4. 在 EditForm 我处理了 OnSubmit 事件。在那个事件处理程序中,我通过 FluentValidation 的 ValidateAsync() 方法执行验证。

  5. 最后,我遍历验证结果并使用适当的 CSS、错误消息、突出显示...等更新每个字段。

于 2019-08-07T23:21:11.043 回答