代码之家  ›  专栏  ›  技术社区  ›  Misha N.

ASP.NET MVC,模型和视图模型关注点分离?

  •  1
  • Misha N.  · 技术社区  · 16 年前

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

    • ViewModel对象是否可以包含模型对象?
    • 如果使用MVVM,建议在视图上使用模型对象吗?
    • 应该在哪里对ViewModel或模型类进行验证?
    • 业务层(服务层)是否应该了解ViewModel,以及谁负责ViewModel和模型之间的映射?
    1 回复  |  直到 12 年前
        1
  •  3
  •   Çağdaş Tekin    16 年前
    • 大多数情况下,当我们需要发送多个类型的模型对象时,或者当我们需要传递仅在视图中需要的多个属性时,模型视图对象只是保存模型对象的容器。
    • 如果视图的工作是显示模型的详细信息,而没有其他内容可传递给视图,为什么不呢?
    • 视情况而定。您可以使用模型视图和模型类在层之间传输数据。并通过Cutom模型绑定器或服务层进行验证。
    • 他们没有理由不了解模型视图。但通常您只需从控制器的服务层获取请求的模型,然后直接或在模型视图中将其传递给视图。

    顺便说一句,我不认为模型视图是一种架构。更像是“需要的时候用一个”。毕竟,这样做没有必要将数据传递给视图:

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

    只是通过 MyModel 如果这足够让视图发挥作用的话。