【发布时间】:2017-11-07 18:49:51
【问题描述】:
我有点困惑这三个组件——模型、视图、控制器——在 MVC 架构中是如何相互交互的。有时我觉得我知道 MVC 是如何工作的,有时我觉得我不知道它的内部是否正常工作。
我对 MVC 架构的了解是 -
- 无论是URL,Controller都会拦截用户请求
请求或用户在页面上提出的任何事件。 - 然后控制器处理用户输入并与模型对话。
- 模型准备数据并发送回控制器。
- 最后,控制器将数据交还给视图并显示给用户。
在我看来,View 从不直接与模型对话。 View 和 Model 之间的交互将仅由 Controller 处理。
到目前为止一切顺利!
但是当我看到下面的图表时,我会感到困惑。在下图中,左箭头表示 View 组件也可以与 Model 组件交互。
在thiscode-project 的文章中也写到“A model is accessible by both controller and view”和“a view can use model to display data”。
所以请澄清一个模型是只能由控制器访问还是控制器和视图都可以访问。如果第二个也是正确的,那么在什么情况下这是可能的。我在 ASP.NET MVC 框架上工作,这里的任何交互都是通过控制器对象完成的。我从未遇到过视图直接与模型对象对话的情况。
【问题讨论】:
-
我很确定您可以将模型对象传递给您的视图,它会根据模型中的数据呈现该视图。看看这个,往下看标题为:“使用模型将信息传递给我们的视图”的部分docs.microsoft.com/en-us/aspnet/mvc/overview/older-versions/…
标签: asp.net-mvc design-patterns model-view-controller architecture