ASP.NET Core - MVC 设计模式


MVC(模型-视图-控制器)设计模式实际上已经存在了几十年,并且已在许多不同的技术中使用,从 Smalltalk 到 C++ 再到 Java,现在在 C# 和 .NET 中作为设计构建用户界面时使用的模式。

  • MVC 设计模式是一种流行的软件应用程序用户界面层设计模式。

  • 在较大的应用程序中,您通常将模型-视图-控制器 UI 层与应用程序中的其他设计模式(例如数据访问模式和消息传递模式)结合起来。

  • 这些将共同构建完整的应用程序堆栈。

MVC 将应用程序的用户界面(UI)分为以下三个部分 -

  • 模型- 一组描述您正在使用的数据以及业务逻辑的类。

  • 视图- 定义应用程序的 UI 将如何显示。它是一个纯 HTML,决定了 UI 的外观。

  • 控制器- 一组处理用户通信、整体应用程序流程和特定于应用程序的逻辑的类。

MVC 背后的理念

现在让我们了解 MVC 背后的想法。

  • 这个想法是,您将有一个称为视图的组件,它单独负责呈现此用户界面,无论它应该是 HTML 还是实际上应该是桌面应用程序上的 UI 小部件。

  • 视图与模型对话,该模型包含视图需要显示的所有数据。

  • 在 Web 应用程序中,视图可能根本没有任何与其关联的代码。

  • 它可能只有 HTML,然后是一些表达式,说明从模型中获取数据片段并将它们插入到您在视图中构建的 HTML 模板内的正确位置。

多维控制器
  • 控制器组织一切。当 MVC 应用程序收到 HTTP 请求时,该请求将被路由到控制器,然后由控制器与数据库、文件系统或模型进行通信。

在 MVC 中,控制器接收到 HTTP 请求,控制器必须弄清楚如何将信息组合在一起以响应此请求。也许用户正在将浏览器定向到应用程序的 /books URL。因此控制器需要将这些信息组合在一起来显示图书列表。在这种情况下,控制器将构建一个模型。

MVC模型
  • 该模型对 HTTP 请求或控制器一无所知。

  • 该模型仅负责保存用户想要查看的书籍信息,以及与该书籍列表相关的任何逻辑。

  • 该模型只是我们可以使用的另一个 C# 类,如果您有一个复杂的模型,您可能会有多个类。

  • 一旦模型组合在一起,控制器就可以选择一个视图来渲染模型。

  • 视图将获取模型中的信息,例如所有书籍和每本书的标题等,并将使用该信息构建 HTML 页面。

  • 然后,该 HTML 在 HTTP 响应中发送回客户端,整个 HTTP 请求和响应事务就完成了。

这些是 MVC 设计模式的基础知识,该模式背后的思想是保持关注点分离。因此控制器只负责接受请求并构建模型。它是将我们需要的逻辑和数据携带到视图中的模型。那么视图只负责将该模型转换为 HTML。