ASP.NET MVC,Model和ViewModel分离的顾虑?

时间:2009-10-22 08:23:04

标签: asp.net-mvc architecture viewmodel mvvm

最近,当底层模型很复杂时,我一直在探索组织ASP.NET MVC应用程序表示层的最佳方法。到目前为止,MVVM架构及其ViewModel对象。但是,我不确定在这种架构存在的情况下,最佳做法是什么。

  • ViewModel对象是否可以包含Model对象?
  • 如果使用MVVM,建议在Views上使用Model对象吗?
  • 应在ViewModel或Model类上实现验证?
  • 业务层(服务层)是否应该了解ViewModel,谁负责ViewModel和Model之间的映射?

1 个答案:

答案 0 :(得分:3)

  • 大多数情况下,当我们需要发送多个类型的对象时,或者当我们需要传递视图中仅需要的几个属性时,ModelView对象只是容纳Model对象的容器。
  • 如果View的工作是显示模型的详细信息而没有其他内容可以传递给View,为什么不呢?
  • 取决于。您可以使用ModelView和Model类来在层之间传输数据。并通过cutom模型粘合剂或服务层来处理验证。
  • 他们没理由不了解ModelViews。但通常您只需从控制器的服务层获取所请求的模型,然后将它/它们直接或在ModelView中传递给View。
顺便说一下,我不认为ModelViews是一种架构。它更像是“当你需要一个时使用一个”。毕竟,将数据传递给视图是没有意义的:

class SomeModelView {
    public MyModel model { get; set; }
}

如果这足以让视图完成其工作,只需传递MyModel