Asp.net mvc 模型和视图模型之间的区别
我一直在为一个新项目研究asp.NETMVC项目结构,有一个问题让我困惑。模型和视图模型之间有什么区别?我说视图模型包含表单属性中的模型是否正确?Asp.net mvc 模型和视图模型之间的区别,asp.net-mvc,asp.net-mvc-3,model,viewmodel,Asp.net Mvc,Asp.net Mvc 3,Model,Viewmodel,我一直在为一个新项目研究asp.NETMVC项目结构,有一个问题让我困惑。模型和视图模型之间有什么区别?我说视图模型包含表单属性中的模型是否正确?ViewModel是根据特定视图调整的业务域层中的模型版本 它只有与视图相关的属性,不应该有方法(除了像ToString()这样的简单方法) ViewModel只是一个“数据容器”。模型只是应用程序中对象的表示。但是,有几种不同类型的模型需要注意 域模型:这表示应用程序中的域对象,如使用ORM(Linq2SQL,EF)的SQL表 视图模型:这表示希望最
ViewModel
是根据特定视图调整的业务域层中的模型版本
它只有与视图相关的属性,不应该有方法(除了像ToString()
这样的简单方法)
ViewModel
只是一个“数据容器”。模型只是应用程序中对象的表示。但是,有几种不同类型的模型需要注意
关于视图模型及其使用,请参阅。模型通常与数据的存储方式(数据库、服务等)关系更密切,并且模型与这些模型非常相似 另一方面,ViewModel与数据呈现给用户的方式密切相关。它通常是模型的扁平化版本、非规范化版本等。它可以是多个模型的聚合 对于典型的
Person
对象,模型可能包含以下属性:
- 名字
- 姓氏
- 生日
- 全名
- 年龄
BlogViewModel
的视图模型,其中包含最新的帖子、最新的评论和其他内容作为属性,我用这个模型绑定了我的视图。发布
,评论
。。是域模型,BlogViewModel
是我专门为视图创建的视图模型
明天我将在手机版上展示我的博客,届时我可能会创建一个只包含较少属性的简单视图模型。最后视图模型用于视图,大多数情况下它们充当真实域模型的包装器 你可以用谷歌搜索。所以它本身就有很多问题。这个主题。这个问题完美地回答了这个问题。我想补充一点,模型对象应该表示对象的语义/概念结构、其内在/自然属性和行为,而不是它实际的存储方式。存储取决于实现细节,这些细节不是对象的实际特征。@heltonbiker,这是一个很好的观点。我认为有很多模型,视图模型、业务逻辑模型、数据存储模型等等。我们经常会遇到困难,因为我们不接受它们各自的差异,而是关注它们的相似性。我可能很快就会写一篇关于这一点的博文;)在我看来,建模是最重要的开发活动中最被忽视的(至少在我所知道的大多数地方…)