1

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

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

1 回答 1

3
  • 大多数时候,当我们需要发送多种类型的模型对象或需要传递仅在视图中需要的更多属性时,模型视图对象只是包含模型对象的容器。
  • 如果视图的工作是显示模型的详细信息,而没有其他东西可以传递给视图,为什么不呢?
  • 依靠。您可以使用 ModelView 和 Model 类在层之间传输数据。并通过自定义模型绑定器或服务层进行验证。
  • 他们没有理由不知道 ModelViews。但通常你只是从控制器的服务层获取请求的模型,然后将它/它们直接或在模型视图中传递给视图。

顺便说一句,我不会将 ModelViews 视为一种架构。这更像是“在需要时使用一个”。毕竟,这样做将数据传递给 view 是没有意义的:

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

只要通过MyModel如果这足以让视图完成它的工作。

于 2009-10-22T08:51:33.647 回答