首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MVC体系结构控制流程

问MVC体系结构控制流程
EN

Stack Overflow用户
提问于 2017-06-06 16:30:42
回答 2查看 2.3K关注 0票数 0

我有点搞不懂这三个组件--模型、视图、控制器--如何在MVC体系结构中相互作用。有时我觉得我知道MVC是如何工作的,有时我觉得我不知道它的内部工作正常。

我对MVC架构的了解是-

  1. 控制器将拦截用户请求,无论它是否为URL 请求或页面上用户引发的任何事件。
  2. 然后控制器对用户输入进行处理,并与模型进行对话。
  3. 模型准备数据并发送回控制器。
  4. 最后,控制器将数据交还给视图并显示给用户。

在这里,我认为,View从来没有直接与模型对话。视图和模型之间的交互将由Controller 处理。

到目前一切尚好!

但是当我看到像下面这样的图表时,我会感到困惑。在下图中,左箭头显示View组件也可以与Model组件交互。

​

​

在这代码-项目文章中,还写到“一个模型可以被控制器和视图访问”和“一个视图可以使用模型来显示数据”。

因此,请澄清一个模型是只能由控制器访问,还是由控制器和视图访问。如果第二个也是正确的,那么在什么情况下这是可能的。我在ASP.NET MVC框架上工作,这里的任何交互都是通过控制器对象完成的。我从未遇到过视图直接与模型对象对话的情况。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-06 17:54:24

这里有MVC、模式和MVC,这是微软开发的web应用程序框架,并以该模式命名,所以最好把这两种模式分开讨论。

在MVC模式中,您会发现以下内容:

  • 模型-包含应用程序的所有业务逻辑,包括如何“构建”自身的逻辑,无论是通过数据库查询还是其他方法。
  • 视图-提供了UI模型的表示形式。
  • 控制器-将模型连接到视图。

在MVC中,web应用程序框架:

  • 模特-一个都没有。更恰当的是,模型可能是一个或多个实体类、DAL层和一个或多个视图模型的某种组合。
  • 视图-与MVC基本相同,这种模式
  • 控制器-连接模型到视图,但也承担更多的责任。可以负责从数据库中查询实体、映射到视图模型、为视图创建组件等。

不管名字如何,MVC框架只是松散地实现了MVC模式。但是,在这两种情况下,模型都可以被控制器和视图访问,因此您的基本理解是有缺陷的。但是,在MVC框架中,您可以说只有视图模型才能被视图访问。由于MVC框架中的“模型”不仅仅是一回事,还有一些组成部分不应该被视图访问,即: DAL层和潜在的实体,除非该实体也作为视图模型执行双重任务。

票数 0
EN

Stack Overflow用户

发布于 2017-06-07 11:45:18

如果视图是用任何模型强类型的,那么我们可以说

View=>模型

如果视图不是强类型的模型,那么我们可以说

controller=>Models=>视图

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44395330

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档