我正在开发一个项目,其中存在将在MVC项目中使用的现有WCF(带有数据注释验证)。我们希望在WCF中进行数据注释验证,以便能够在MVC客户端工作,而无需复制任何验证逻辑并继承MVC中的任何类。默认情况下,如果模型是用MVC编写的,那么jquery无阻碍验证将在客户端为我们完成剩下的工作,而不是在WCF芯片编写的情况下。
我们的团队一直在努力完成这项工作,但遗憾的是我们还没有找到任何优雅的解决方案。但是,我们认为如果可以这样做,每次后端更改时,这将减少大量工作以优化表示层。
也许我们正在努力实现一些太好而不真实的东西,但我们感谢能够通过这条道路进行研究的人能给我们一些暗示/建议。
注意:演示文稿/任何其他图层中没有重复的域模型。
答案 0 :(得分:0)
也许您可以使用企业库验证应用程序块(EntLib VAB)。因此,您可以在EntLib VAB中定义验证规则集,而不是在数据注释中定义验证规则。您也可以在WCF和MVC应用程序中使用相同的验证规则。也许您只需要在MVC应用程序中编写一个中间层,将EntLib VAB规则集转换为MVC数据注释规则集。只要这个翻译是正确的并且与MVC中可用的数据注释验证一致,您甚至不必编写客户端数据验证适配器。
这不是一种简单的方法,但它可以节省WCF和MVC Web应用程序中POCO类的重复。此外,如果你可以正确设置'框架',它可能在将来设置新规则方面有用。
如果你喜欢这个想法,你可能想检查一下: http://programersnotebook.blogspot.de/2014/03/extending-enterprise-library-entlib.html http://programersnotebook.blogspot.de/2014/03/extending-entlib-vab-part-1-enable.html http://programersnotebook.blogspot.de/2014/04/extending-entlib-vab-part-21-create.html http://programersnotebook.blogspot.de/2014/04/extending-entlib-vab-part-22-enable.html