我使用ASP.NET MVC实体框架POCO类和FluentValidation框架。它运作良好,并确认正在发生的事情,因为它应该(好像我用DataAnnotations)。我甚至已经得到了客户端验证工作。而且我很满意。

由于这是一个测试应用程序我写只是为了看看我是否能得到合作的新技术(和学习他们前进的道路上),我现在已经准备好使用的ViewModels,而不是仅仅通过实际模型的实验视图。我打算使用类似AutoMapper在我的服务进行映射来回从模型到视图模型,但我首先有一个问题。

这是如何影响到我的验证?如果我的验证类(使用FluentValidation写的)来对视图模型,而不是模型编写的?还是需要在两个地方出现呢?其中约DataAnnotations(和FluentValidation)的大宗交易是,你可以在一个地方的验证,将工作“无处不在”。它实现了这一承诺(主要是),但如果我开始使用的ViewModels,难道我失去能力,必须回去把验证在两个地方?

或者,我只是想错了?

有帮助吗?

解决方案

  

或者,我只是想错了?

大概;)

如果您添加的所有验证码到您的ViewModels你只是来验证他们的,而不是实际的模型。所有你真的改变是哪些对象可以进入无效状态。

现在我很高兴馅饼仅在验证的ViewModels,然后通过这些信息反馈到实际的模型和DAO层。无论您的域名可以进入无效状态是一个有争议的话题,虽然,但到目前为止,这种技术为我工作的伟大。验证在一个地方,在我的持久性存储没有无效的对象。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top