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应用程序时,请求被路由到控制器,然后由控制器与数据库,文件系统或模型通信.

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

MVC Model

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

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

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

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

  • 视图将获取模型中的信息,如所有书籍和每本书名称等,以及它将使用该信息构建一个HTML页面.

  • 然后将该HTML发送回HTTP响应中的客户端以及整个HTTP请求和响应事务已经完成.

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