使用 FluentValidation 验证字段集合(而不是验证器模型)
Using FluentValidation to validate on a collection of Fields (rather than on a validator model)
我正在尝试查看是否有一种使用 FluentValidation 的方法,而无需为我的应用程序中的每个对象类型显式创建验证模型。
这在技术上和目前是否可行?
已更新
换句话说,FluentValidation 是否可以在没有 IValidator 上下文的情况下验证规则?相反,我想传入要验证的项目实例并使用即时构建的验证规则。
已解决
I was able to resolve by doing a kind of a hack solution. Here are
basic details of what i did:
1) I created a class (GenericModel) which has a collection of objects
representing properties in a model. 2) I created a validator class
that inherits from AbstractValidator. 3) Based on
GenericModel's collection of "property objects" + additional metadata
about each property's validation rules and error messages, i was able
to add FluentValues Rules, all at run-time. 4). At the EditForm i
handled the OnSubmit event. In that event handler i execute validation
via FluentValidation's ValidateAsync() method. 5). Finally, i iterate
thru the validation results and update each field with appropriate
CSS, error messages, highlighting...etc.
我能够通过一种 hack 解决方案来解决。以下是我所做工作的基本细节:
我创建了一个 class (GenericModel),它有一个表示模型属性的对象集合。
我创建了一个继承自 AbstractValidator 的验证器 class。
基于 GenericModel 的 "property objects" 集合 + 关于每个 属性 验证规则和错误消息的附加元数据,我能够添加 FluentValues 规则,全部在 运行-时间。
在 EditForm 中我处理了 OnSubmit 事件。在该事件处理程序中,我通过 FluentValidation 的 ValidateAsync() 方法执行验证。
最后,我遍历验证结果并使用适当的 CSS、错误消息、突出显示等更新每个字段
我正在尝试查看是否有一种使用 FluentValidation 的方法,而无需为我的应用程序中的每个对象类型显式创建验证模型。
这在技术上和目前是否可行?
已更新
换句话说,FluentValidation 是否可以在没有 IValidator 上下文的情况下验证规则?相反,我想传入要验证的项目实例并使用即时构建的验证规则。
已解决
I was able to resolve by doing a kind of a hack solution. Here are basic details of what i did:
1) I created a class (GenericModel) which has a collection of objects representing properties in a model. 2) I created a validator class that inherits from AbstractValidator. 3) Based on GenericModel's collection of "property objects" + additional metadata about each property's validation rules and error messages, i was able to add FluentValues Rules, all at run-time. 4). At the EditForm i handled the OnSubmit event. In that event handler i execute validation via FluentValidation's ValidateAsync() method. 5). Finally, i iterate thru the validation results and update each field with appropriate CSS, error messages, highlighting...etc.
我能够通过一种 hack 解决方案来解决。以下是我所做工作的基本细节:
我创建了一个 class (GenericModel),它有一个表示模型属性的对象集合。
我创建了一个继承自 AbstractValidator 的验证器 class。
基于 GenericModel 的 "property objects" 集合 + 关于每个 属性 验证规则和错误消息的附加元数据,我能够添加 FluentValues 规则,全部在 运行-时间。
在 EditForm 中我处理了 OnSubmit 事件。在该事件处理程序中,我通过 FluentValidation 的 ValidateAsync() 方法执行验证。
最后,我遍历验证结果并使用适当的 CSS、错误消息、突出显示等更新每个字段