【发布时间】:2010-04-07 15:37:11
【问题描述】:
如何在不使用 MVC 库的情况下验证包含 DataAnnotations 的实体?在表示层中使用 Model.IsValid 很好,但是当您想确保模型在域/业务层中有效时呢?我是否需要一个单独的验证框架,或者是否有一种我缺少的简单方法?
感谢您的帮助,
标记
【问题讨论】:
标签: validation asp.net-mvc-2 data-annotations
如何在不使用 MVC 库的情况下验证包含 DataAnnotations 的实体?在表示层中使用 Model.IsValid 很好,但是当您想确保模型在域/业务层中有效时呢?我是否需要一个单独的验证框架,或者是否有一种我缺少的简单方法?
感谢您的帮助,
标记
【问题讨论】:
标签: validation asp.net-mvc-2 data-annotations
我想你的意思是 ModelState.IsValid 和 Model.IsValid,对吧?好吧,DataAnnotions 根本不依赖 MVC,所以你总是可以使用IValidatableObject 接口。
或者Validator class 可能更合适,使用Validator.ValidateObject(object, ValidationContext)。
【讨论】:
我使用纯 c# 编写了我的验证逻辑,我的业务层包含这些验证,我在整个业务层使用 try 和 catch 块。表示层捕获这些自定义异常,因此错误会在屏幕上显示给用户。我只在数据注释中保留基本验证,例如[必需] 主要用于 ajax 调用和通知用户在不可为空的字段中输入数据,这样我的业务逻辑仍然在我的中间层,它保持一致,它只保留在一个我可以参考的地方。
【讨论】: