介绍
MVC 设计模式相当古老。它最初是为 Smalltalk-80 应用程序定义的,当时“网络”是两个人在大学之间发送 ping。从那时起,它已经发展了很多。
MVC 设计模式背后的核心原则是关注点分离。该模式将表示与业务逻辑分开。表示层主要包含视图、控制器、模板、视图模型和演示者(取决于您使用哪种风格的 MVC 启发模式),而业务逻辑结束于模型层。
模型层虽然没有在模式中严格定义,但在 ASP.NET MVC 中由服务和服务使用的所有结构(包括模型对象,更好地称为域对象)组成。
关于这个问题
DataContext
当您在寻找基本的 MVC 教程时,在控制器中看到使用是很常见的。MVC 架构意味着大型应用程序,在Hello-World示例中,完全实现的 MVC 架构看起来就像膨胀。
为了简单起见,这些示例牺牲了代码分离。与的交互DataContext
基本上是存储逻辑,这是模型层处理的任务之一。当在控制器中使用时,这意味着您的模型层已经开始在表示层中泄漏,并且您最终会遇到“控制器胖,模型瘦”的问题。
在现实世界的应用程序中,这DataContext
将是处理模型层内持久性的结构的一部分。可能作为数据映射器的一部分,如果您选择手动编写它们。
关于“更新”
模型(我想在这种情况下您的意思是域/模型对象)来自与 ViewModel 完全不同的应用层。
顾名思义,在 MVVM 模式中,ViewModel 取代了 Controller。ViewModel 从模型层获取数据,然后将其转换为可用于 View 的方式。
当您无法完全控制视图或/和模型层的行为时,最好使用此模式(如果您真的使用 MVVM)。例如:如果您受雇为 SAP 构建替代前端,或者当视图实际上是某种形式的硬件设备时,它需要特定类型的输入。