gpt4 book ai didi

.net - MVC - 是模型来查看还是 Controller 来查看?

转载 作者:行者123 更新时间:2023-12-03 14:17:45 26 4
gpt4 key购买 nike

我看到许多网站和文章解释说 View 是从模型更新的,如下例 mvc
但是我看到了一些其他的 MVC 架构示例,显示 View 是通过 Controller 更新的 enter image description here

这是否取决于您是否将@Model 放入您的 View 中?我只是想知道为什么不同版本的 MVC,我们被告知它应该是第二个图像。

最佳答案

MVC 是一种定义松散的模式,它让架构师对实现细节有很大的自由裁量权。这可能就是存在如此多 MVC 变体的原因。

据我所知,这一切都始于经典(原始)MVC,它将 Web 应用程序分为三个部分,即模型、 View 和 Controller 。目标是:

  • 实现模型和 View 之间的松耦合(观察者模式
    用来实现它)。
  • 将业务逻辑封装到 Model 中,使其可以穷举
    测试。
  • 使 View 尽可能地笨/薄,以减少对其进行测试的需要。

  • A Standard MVC Interaction

    该模式吸引了很多人,以至于有几种变化(主动模型、被动模型、模型2)。这些变化是由于特定框架中的模式实现以适应框架的设计目标。

    例如,一种变体是 Model2。 Model2 是一个 Web 变体(经典 MVC 实际上是针对桌面应用程序的),并以“ASP.NET MVC 框架”而流行。

    The Model2 Interaction as in the ASP.NET MVC Framework

    经典 MVC 和 ASP.NET MVC 框架之间的主要区别在于,后者提供了模型和 View 之间的巧妙分离,即没有直接交互。相反, Controller 负责促进 ASP.NET MVC 框架中的模型和 View 之间的这种通信。这使得 ASP.NET MVC Framework Web 应用程序的测试变得更加容易和高效。

    此外,在 Model2 中,可以在 View 和 Controller 之间建立一种松散的契约。在 ASP.NET MVC 框架中,此协定过去由 ViewData 容器对象表示,现在使用 ViewModel 对象。

    为避免混淆,需要查看当前使用的 MVC 模式实现中这三个部分(模型、 View 和 Controller )之间的交互。还要接受这样一个事实,即它是 MVC 模式的一种特定实现,一张图可能无法完整地描述它。

    关于.net - MVC - 是模型来查看还是 Controller 来查看?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29594105/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com