Vic*_*rra 0 fluentvalidation asp.net-web-api asp.net-core
例如,您可以验证电话号码或电子邮件,这些都是FV文档,但如果您需要确保经理"X"的员工尚未使用电话号码,该怎么办?我知道可以通过所有自定义验证器选项来完成此操作.但我应该在那里做吗?
如果我将这个逻辑放入一个复杂的自定义FluentValidation中,我担心我在错误的地方编写这个逻辑.传统上,我会在我通常会添加/保存的区域中将此添加到我的服务中.
由于我已经为我的视图模型设置了流畅的验证,并且我在那里进行其他类型的验证,因此将所有内容保存在一个位置似乎很诱人.但是,这意味着如果我在非Web应用程序中重用我的逻辑,则必须记住以其他方式执行这些验证器,而不是通过modelbinder自动执行IsValid().虽然我没有花费额外的时间编码来使我的项目无论如何都是模块化的.我离题了.
嗯,不,它实际上是一个好地方.无论底层框架如何,您都希望将验证保持在同一位置并使其可重用于您的逻辑.
在ASP.NET中使用属性验证和ModelStateDictionary将您的逻辑绑定到ASP.NET,而FluentValidation可以与所有内容一起使用.您仍然可以使用服务来包装该逻辑,并仅在验证成功时添加/更新实体.我大量使用流畅的验证,即使在我需要进行数据库查询的情况下也可以正常工作.我可以简单地从ASP.NET切换到控制台应用程序或其他任何东西,并且两者都具有相同的逻辑.
将验证逻辑分成几个区域听起来不像最佳实践.
| 归档时间: |
|
| 查看次数: |
441 次 |
| 最近记录: |