ASP.NET MVC视图模型模式 - 验证和数据库操作

时间:2010-11-26 09:26:15

标签: asp.net-mvc viewmodel

在开发开始时,我遇到了一个问题,称为“域模型和视图之间的阻抗不匹配”。为了解决这个问题,我决定使用ViewModel模式 - 对于每个视图(强类型)我们创建viewmodel类。但验证逻辑在哪里定位 - 在viewmodel类中或在我们的域模型对象中?我们需要执行操作来查询数据库 - 在控制器操作中,然后在viewmodel中直接填充viewmodel?

谢谢。

1 个答案:

答案 0 :(得分:3)

您应该拥有viewmodel的验证逻辑。这是视图发送的内容以及应该验证的内容。就填充viewmodel而言,这里是如何继续:编写一个查询数据库并返回模型的存储库。然后将这些模型映射到视图模型(AutoMapper可以在这里帮助你)。最后将viewmodels返回到视图。这也是另一种方式:用户将一些数据发送到控制器操作,作为viewmodel的形式,一旦经过验证,就会映射回模型并传递给存储库进行更新。

作为数据注释的替代方法,您可以查看FluentValidation以验证您的视图模型。它与ASP.NET MVC integrates nicely