最近,当底层模型很复杂时,我一直在探索组织ASP.NET MVC应用程序表示层的最佳方法 . 到目前为止,MVVM架构及其ViewModel对象 . 但是,我不确定在这种架构是否存在的情况下,最佳做法是什么 .
ViewModel对象是否可以包含Model对象?
如果使用MVVM,建议在视图上使用Model对象吗?
应在ViewModel或Model类上实现验证?
业务层(服务层)应该了解ViewModel,谁负责ViewModel和Model之间的映射?
大多数情况下,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 ,如果这足以让视图完成它的工作 .
MyModel
1 回答
大多数情况下,ModelView对象只是在我们需要发送多种类型的对象时,或者当我们需要传递视图中只需要的几个属性时,它们只是容纳模型对象的容器 .
如果View的工作是显示模型的详细信息而没有其他任何内容可以传递给View,为什么不呢?
取决于 . 您可以使用ModelView和Model类来在层之间传输数据 . 并通过cutom模型 Binders 或服务层来处理验证 .
有's no reason why they shouldn't了解ModelViews . 但通常您只是从控制器的服务层获取所请求的模型,然后将它/它们直接或在ModelView中传递给View .
顺便说一句,我不认为ModelViews是一种架构 . 它更像是“当你需要一个时使用一个” . 毕竟,将数据传递给视图是没有意义的:
只要传递
MyModel
,如果这足以让视图完成它的工作 .