📅  最后修改于: 2020-11-21 04:55:10             🧑  作者: Mango
MVC(模型-视图-控制器)设计模式实际上已经存在了几十年,并且已被用于许多不同的技术,从Smalltalk到C++到Java,现在都在C#和.NET中作为设计。构建用户界面时使用的模式。
MVC设计模式是用于软件应用程序的用户界面层的流行设计模式。
在大型应用程序中,通常将模型视图控制器UI层与应用程序中的其他设计模式(例如数据访问模式和消息传递模式)结合在一起。
这些都将一起构成完整的应用程序堆栈。
MVC将应用程序的用户界面(UI)分为以下三个部分-
模型-一组描述您正在使用的数据以及业务逻辑的类。
视图-定义如何显示应用程序的UI。这是一个纯HTML,它决定了UI的外观。
控制器-一组类,处理与用户的通信,整体应用程序流和特定于应用程序的逻辑。
现在让我们了解MVC背后的想法。
想法是,您将拥有一个称为视图的组件,该组件仅负责呈现此用户界面,无论该界面应为HTML还是实际上应为桌面应用程序上的UI小部件。
视图与模型对话,该模型包含视图需要显示的所有数据。
在Web应用程序中,视图可能根本没有与之关联的任何代码。
它可能只有HTML,然后有一些表达式,表示从何处获取模型中的数据并将其插入视图中构建的HTML模板内的正确位置。
控制器组织一切。当针对MVC应用程序的HTTP请求到达时,该请求将路由到控制器,然后由控制器与数据库,文件系统或模型进行通信。
在MVC中,控制器接收HTTP请求,控制器必须弄清楚如何将信息汇总在一起以响应此请求。也许用户正在将浏览器定向到应用程序的/ books URL。因此,控制器需要汇总信息以显示书籍清单。在这种情况下,控制器将建立一个模型。
该模型对HTTP请求或控制器一无所知。
该模型仅负责保存用户想要查看的书籍信息以及与该书籍列表相关的任何逻辑。
该模型只是我们可以使用的另一个C#类,如果您具有复杂的模型,则可能有多个类。
将模型放在一起后,控制器便可以选择一个视图来渲染模型。
该视图将采用模型中的信息,例如所有书籍和每个书籍的标题等,并将使用该信息来构造HTML页面。
然后,该HTML在HTTP响应中发送回客户端,并完成整个HTTP请求和响应事务。
这些是MVC设计模式的基础,该模式背后的思想是保持关注点分离。因此,控制器仅负责接受请求并建立模型。该模型将我们需要的逻辑和数据传递到视图中。然后,视图仅负责将模型转换为HTML。