MVC - 是要查看的模型还是要查看的控制器?
MVC - is it model to view or controller to view?
我看到很多网站和文章解释说视图是从模型更新的,如下例所示
但是我看到了一些 MVC 架构的其他示例,显示视图是通过控制器更新的
这是否取决于您是否将@Model 放入您的视图中?我只是想知道为什么不同版本的 MVC,我们被告知它应该是第二个图像。
MVC 是一种松散定义的模式,它使架构师对实现细节有很大的自由裁量权。这可能就是存在这么多 MVC 变体的原因。
据我所知,这一切都始于经典(原始)MVC,它将 Web 应用程序分为三个部分,即模型、视图和控制器。目标是:
- 实现Model和View松耦合(观察者模式
受雇来实现它)。
- 将业务逻辑封装到Model中,做到面面俱到
已测试。
- 尽可能将视图设置为 dumb/thin 以减少对其进行测试的需要。
该模式如此吸引人,以至于有多种变体(主动模型、被动模型、模型 2)。这些变化是由于在特定框架中实施模式以适应框架的设计目标。
例如,一种变体是 Model2。 Model2 是一种 Web 变体(Classic MVC 实际上是针对桌面应用程序的)并且流行起来 "ASP.NET MVC Framework".
Classic MVC 和 ASP.NET MVC Framework 之间的主要区别在于,后者提供了模型和视图之间的巧妙分离,即没有直接交互。相反,控制器负责在 ASP.NET MVC 框架中促进模型和视图之间的通信。这使得 ASP.NET MVC 框架 Web 应用程序的测试变得更加容易和高效。
此外,在 Model2 中,可以在视图和控制器之间建立一种松散的契约。在 ASP.NET MVC 框架中,此契约过去由 ViewData 容器对象表示,现在使用 ViewModel 对象。
为避免混淆,需要查看当前使用的 MVC 模式实现中这三个部分(模型、视图和控制器)之间的交互。还要接受这样一个事实,即它是 MVC 模式的特定实现,一张图可能无法完整描述它。
我看到很多网站和文章解释说视图是从模型更新的,如下例所示
这是否取决于您是否将@Model 放入您的视图中?我只是想知道为什么不同版本的 MVC,我们被告知它应该是第二个图像。
MVC 是一种松散定义的模式,它使架构师对实现细节有很大的自由裁量权。这可能就是存在这么多 MVC 变体的原因。
据我所知,这一切都始于经典(原始)MVC,它将 Web 应用程序分为三个部分,即模型、视图和控制器。目标是:
- 实现Model和View松耦合(观察者模式 受雇来实现它)。
- 将业务逻辑封装到Model中,做到面面俱到 已测试。
- 尽可能将视图设置为 dumb/thin 以减少对其进行测试的需要。
该模式如此吸引人,以至于有多种变体(主动模型、被动模型、模型 2)。这些变化是由于在特定框架中实施模式以适应框架的设计目标。
例如,一种变体是 Model2。 Model2 是一种 Web 变体(Classic MVC 实际上是针对桌面应用程序的)并且流行起来 "ASP.NET MVC Framework".
Classic MVC 和 ASP.NET MVC Framework 之间的主要区别在于,后者提供了模型和视图之间的巧妙分离,即没有直接交互。相反,控制器负责在 ASP.NET MVC 框架中促进模型和视图之间的通信。这使得 ASP.NET MVC 框架 Web 应用程序的测试变得更加容易和高效。
此外,在 Model2 中,可以在视图和控制器之间建立一种松散的契约。在 ASP.NET MVC 框架中,此契约过去由 ViewData 容器对象表示,现在使用 ViewModel 对象。
为避免混淆,需要查看当前使用的 MVC 模式实现中这三个部分(模型、视图和控制器)之间的交互。还要接受这样一个事实,即它是 MVC 模式的特定实现,一张图可能无法完整描述它。