ASP.NET Core MVC 设计模式

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

  • MVC 设计模式是软件应用程序用户界面层的流行设计模式。
  • 在较大的应用程序中,通常将模型视图控制器 UI 层与应用程序中的其他设计模式(如数据访问模式和消息传递模式)相结合。
  • 这些都将一起构建完整的应用程序堆栈。

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

  • 模型(Model):一组类,描述您正在使用的数据以及业务逻辑。
  • 视图(View):定义应用程序 UI 的显示方式。它是一个纯 HTML,它决定了 UI 的外观。
  • 控制器(Controller):一组类,用于处理来自用户的通信、整体应用程序流和应用程序特定逻辑。

MVC 背后的理念

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

  • 其想法是,您将拥有一个名为视图的组件,该组件单独负责呈现该用户界面,无论它应该是 HTML 还是实际上应该是桌面应用程序上的 UI 小部件。
  • 视图与模型对话,该模型包含视图需要显示的所有数据。
  • 在 web 应用程序中,视图可能根本没有与其关联的任何代码。
  • 它可能只有 HTML 和一些表达式,这些表达式表示从模型中获取数据片段的位置,并将它们插入到视图中构建的 HTML 模板中的正确位置。

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

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

  • 模型对 HTTP 请求或控制器一无所知。
  • 模型只负责保存用户想要查看的图书信息,以及与图书列表相关联的任何逻辑。
  • 模型只是我们可以使用的另一个 C# 类,如果你有一个复杂的模型,你可能会有多个类。
  • 一旦将模型放在一起,控制器就可以选择一个视图来渲染模型。
  • 视图将获取模型中的信息,如所有书籍和每个书名等,并使用这些信息构建 HTML 页面。
  • 然后,HTML 在 HTTP 响应中被发送回客户端,整个 HTTP 请求和响应事务完成。

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