首页 文章

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

提问于
浏览
1

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

  • ViewModel对象是否可以包含Model对象?

  • 如果使用MVVM,建议在视图上使用Model对象吗?

  • 应在ViewModel或Model类上实现验证?

  • 业务层(服务层)应该了解ViewModel,谁负责ViewModel和Model之间的映射?

1 回答

  • 3
    • 大多数情况下,ModelView对象只是在我们需要发送多种类型的对象时,或者当我们需要传递视图中只需要的几个属性时,它们只是容纳模型对象的容器 .

    • 如果View的工作是显示模型的详细信息而没有其他任何内容可以传递给View,为什么不呢?

    • 取决于 . 您可以使用ModelView和Model类来在层之间传输数据 . 并通过cutom模型 Binders 或服务层来处理验证 .

    • 有's no reason why they shouldn't了解ModelViews . 但通常您只是从控制器的服务层获取所请求的模型,然后将它/它们直接或在ModelView中传递给View .

    顺便说一句,我不认为ModelViews是一种架构 . 它更像是“当你需要一个时使用一个” . 毕竟,将数据传递给视图是没有意义的:

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

    只要传递 MyModel ,如果这足以让视图完成它的工作 .

相关问题