【发布时间】:2016-06-15 10:27:16
【问题描述】:
当谈到 MVC 中的验证时,我在在线示例中看到的最常见的方法是使用 ViewModel 来验证数据。人们要么使用数据注解,要么实现 IValidatableObject 和 IClientValidatable 接口。但这不违反单一职责原则吗? ViewModel 真的应该负责验证吗?
我想到的一种方法是创建一个单独的验证器类并从控制器传递 ModelState 字典。这种方法的缺点是我们无法通过实现 IClientValidatable 接口和使用 JQuery 验证库来执行简单的客户端验证。
在不违反 SOLID 原则的情况下,在 MVC 中实现 ViewModel 验证的正确方法是什么?
【问题讨论】:
-
有两个级别的验证。一个简单的形式验证,您可以在客户端实现或在服务器上使用数据注释。然后是成本高昂的业务验证,涉及对其他数据/其他系统的多个依赖项。我想通常没有“非此即彼”,而是你需要两者。
标签: c# asp.net-mvc validation asp.net-mvc-viewmodel