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
  • 控制器组织一切。 当针对 MVC 应用程序的 HTTP 请求到达时,该请求被路由到控制器,然后由控制器与数据库、文件系统或模型对话。

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

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

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

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

  • 将模型放在一起后,控制器便可以选择一个视图来渲染模型。

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

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

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