Model view controller 需要一些关于MVC模式的说明吗

Model view controller 需要一些关于MVC模式的说明吗,model-view-controller,Model View Controller,我非常了解MVC(至少我认为我了解),并且我已经使用这种方法开发了很多应用程序。但有一件事让我很烦: 在我看到的每个模型图中,它被画成一个三角形,控制器和视图/模型之间有直接连接,但视图和模型之间也有连接(即模型和视图直接说话,控制器不在中间) 在我作为一名开发人员的所有岁月中,模型和视图之间总是完全分离,由控制器充当中间人,据我所知,这也是最佳实践 那么,在什么情况下,我希望模型直接与视图对话?你能给我举个简单的例子吗?模型不能与视图对话。但是视图显示模型中包含的数据,并调用模型中的方法来显示

我非常了解MVC(至少我认为我了解),并且我已经使用这种方法开发了很多应用程序。但有一件事让我很烦:

在我看到的每个模型图中,它被画成一个三角形,控制器和视图/模型之间有直接连接,但视图和模型之间也有连接(即模型和视图直接说话,控制器不在中间)

在我作为一名开发人员的所有岁月中,模型和视图之间总是完全分离,由控制器充当中间人,据我所知,这也是最佳实践


那么,在什么情况下,我希望模型直接与视图对话?你能给我举个简单的例子吗?

模型不能与视图对话。但是视图显示模型中包含的数据,并调用模型中的方法来显示它们。这可能就是为什么在图表中它们之间存在链接:

  • 控制器从数据库(通过服务层)获取模型,并将其存储在请求中
  • 控制器调度到适当的视图
  • 视图从模型中获取数据并生成HTML

  • 对于简单的数据绑定任务,某些带有“监控控制器”的模型视图演示器设计模式允许直接从模型更新视图:

    还有ModelView-ViewModel模式,但它与MVC有点类似,只是将控制器逻辑移到了视图中。某些WPF应用程序使用MV-VM从数据源快速更新UI:


    但这两种替代方案(MVP w/C和MV-VM)实际上都是MVC的变型。

    我是这么想的,但我看到一些文章说视图可能会直接要求模型进行更新,就像这样:,那么这是错误的/旧的方法吗?这篇文章讨论了桌面应用程序上的MVC模式,不是在网络开发的背景下。谢谢,我知道这些模式,它并不能完全回答我的问题,但是你得到了对efort的支持:)谢谢。例如,在一个网页中,SQL和数据库连接代码将写入网页本身,以在用户做出选择时更新选择,例如,用户从下拉列表中选择一个国家,然后网页将下拉值传递到SQL中,再次调用数据库,以在另一个下拉列表中获取该国家的城市。