现在我们团队正在构建的应用程序使用内置的MVC属性和一些自制的属性来验证View Models。由于最佳实践设计原则,我们在逻辑层中放置了相同的规则。遗憾的是,这导致了验证码的重复。
至少在MVC3中,如果禁用JavaScript,这些相同的属性仍然会执行它们所要求的验证,因此将视图模型转换为DTO并要求逻辑层验证它不是一个选项,因为这个过程该框架已经完成了。
我没有发现以下SO帖子有任何帮助。我使用过MS Enterprise Library,但API并不适合我们的团队。
我认为最好的方法是将验证属性在运行时绑定到特定属性,并让依赖注入容器执行此操作。这是可能的还是我们可以采取不同的方法?
答案 0 :(得分:1)
您要求在此处执行多种验证类型。 您需要客户端验证(似乎)和其他一些业务验证层。
如果是这种情况,我认为唯一的选择是:
除此之外可能还有其他方法,但这些是我看到的主要选项。
答案 1 :(得分:1)
一种看待它的方法是:如果你的api是你的mvc应用程序,并且你正在执行业务规则已经完成验证,你可以假设它们是有效的。它是输入验证,当然是与您的域相关的但是......如果您改变思维方式,您的域期望有效数据并假设您在使用业务规则之前完成了您的作业。