我有点困惑,三个组件 - 模型,视图,控制器 - 如何在MVC架构中相互交互。有时我觉得我知道MVC是如何工作的,有时我觉得我不知道它的内部工作正常。
我对MVC架构的了解是 -
在我看来,View从不直接与模型对话。视图和模型之间的交互仅由Controller 处理。
到目前为止一切顺利!
但是当我看到下面的图表时,我感到困惑。在下图中,左箭头显示View组件也可以与Model组件交互。
同样在this代码项目文章中,写道“模型可由控制器和视图访问”和“视图可以使用模型显示数据”。
请务必澄清模型是否只能由控制器或控制器和视图访问。如果第二个也是正确的,那么在什么情况下这是可能的。我在ASP.NET MVC框架上工作,这里任何交互都是通过控制器对象完成的。我从未遇到过视图直接与模型对象对话的情况。
答案 0 :(得分:0)
有MVC,模式和MVC,这是由微软开发的Web应用程序框架,并且以模式的名字命名,因此最好将这两个分开并单独讨论。
在MVC模式中,您将找到以下内容:
在MVC中,Web应用程序框架:
尽管有名称,但MVC框架只是松散地实现了MVC模式。但是,在两者中,控制器和视图都可以访问模型,因此您的基本理解存在缺陷。但是,对于MVC框架,您可以说视图只能访问视图模型。自"模型"在MVC框架中不仅仅是一件事,视图不应该访问组成部分,即:DAL层和潜在的实体,除非实体作为视图模型执行双重任务。
答案 1 :(得分:-1)
In Case如果视图是强类型的任何模型,那么我们可以说
查看=>模型
如果视图没有用模型强类型,那么我们可以说
控制器=>模型=>观点