ASP.NET Core MVC 设计模式 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core MVC 设计模式 - ASP.NET Core 基础教程 - 简单教程,简单编程
ASP.NET Core MVC 设计模式
上一章节中,我们提到 ASP.NET Core 支持 MVC 开发模式,不知道大家对 MVC 设计模式是否了解,算了,不管了,本章节我们就来讲讲 MVC 设计模式吧。
MVC 设计模式
MVC ( 模型 - 视图 - 控制器 ) 设计模式作为一种设计模式, 实际上已经存在了几十年,并且已经用于许多不同的技术,从 Smalltalk 到 C ++ 到 Java 。 现在 C# 和 .NET 也使用它作为构建用户界面的一种设计模式
MVC 设计模式是软件应用程序用户界面层的流行设计模式
比较大型的程序,通常将 模型 - 视图 - 控制器 中的 UI 层与应用程序中的其它设计模式组合在一起,例如数据访问模式和消息传递模式
这些设计模式将一起构建完整的应用程序堆栈
MVC 设计模式将应用程序的用户界面 ( UI ) 分为以下三部分:
- 模型 - 描述正在使用的数据以及业务逻辑的一组类
- 视图 - 定义应用程序的 UI 将如何显示。这是一个纯粹的 HTML,它决定了 UI 的外观
- 控制器 - 一组用来处理来自用户的交流通讯,整体应用程序流和特定于应用程序的逻辑的类
MVC 背后的理念
现在,我们来了解下 MVC 背后的理念
使用 MVC 设计模式,我们将拥有一个称为视图的组件,它独自负责呈现该用户界面,不管它是 HTML 还是桌面应用程序上的 UI 小部件
该视图与模型通讯,模型包含视图需要显示的所有数据
Web 应用程序中,视图可能根本没有任何关联的代码, 它可能只是 HTML,然后是从模型中获取数据片段的表达式,并将它们插入到我们在视图中构建的 HTML 模板中的正确位置
控制器用于组织一切。当一个 HTTP 请求到达 MVC 应用程序时,请求会被路由到一个控制器,然后由控制器来与数据库,文件系统或模型交谈
ASP.NET Core 中的 MVC
ASP.NET Core 也使用了 MVC 设计模式,当控制器接收到一个 HTTP 请求时, 控制器必须弄清楚如何将这些信息放在一起来响应这个请求。
比如用户想要浏览应用程序的 /books
页面,那么,控制器需要将这些信息放在一起以显示书籍列表。
在这种情况下,控制器将建立一个模型
- 模型不知道也不必知道有关 HTTP 请求或控制器的任何信息
- 模型仅负责保存用户想要查看的书籍信息以及与该书目列表相关的任何逻辑
- 模型可能仅仅是我们可以使用的另一个 C# 类,如果复杂一点,则可能有多个类
- 一旦将模型放在一起,控制器就可以选择一个视图来渲染模型
- 该视图将使用模型中的信息,如所有书籍和每本书名等,并使用该信息构建 HTML 页面
- 然后,该 HTML 将作为 HTTP 响应发送回客户端,并完成整个 HTTP 请求和响应事务
这些都是 MVC 设计模式的基础,这种模式背后的理念是保持关注的分离。
控制器只负责接受请求并建立模型。 是将我们需要的逻辑和数据带入视图的模型。 然后视图只负责将该模型转换为 HTML
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
PHP知识笔记:CGI, FastCGI, PHP-CGI, PHP-FPM, Spawn-FCGI区别
原作者链接:https://www.aicyun.com/article/34 原理 nginx只是 web 中的内容分发者,比如,如果请求/index.html,那么web server会去文件系统中找到这个文件,发送给浏览器,这里分发的是静态数据。好了,如果现在请求的是/index.php,根据配置文件,nginx知道这个不是静态文件,需要去找PHP解析器来处理,那么他会把这个请求简单处理后交给PHP解析器。即启动对应的CGI程序,PHP解析器会解析php.ini文件,初始化一个环境进程,然后处理请求,在以规定CGI规定的格式返回处理后的结果,退出进程,nginx 在把结果返回给浏览器. CGI CGI是公共网关接口(common gateway interface);http 服务器与你的或者其他机器上的程序进行交谈的一种工具,程序需运行在网络服务器上 CGI可以用于任何语言,只有这种语言具有标准的输入,输出和环境变量. CGI是个协议. FastCGI Fastcgi是用来提高CGI程序性能的,CGI程序的性能出在CGI对每个请求都会执行解析php.ini初始化执行环境这些步骤...
- 下一篇
pyqt5的QWebEngineView 使用模板3
说明 在QWebEngineView使用模板2的基础上,补充增加了一些功能。 一.支持视频播放 关键代码 self.settings().setAttribute(QWebEngineSettings.PluginsEnabled, True) #支持视频播放 二.支持页面关闭请求 关键代码 self.page().windowCloseRequested.connect(self.on_windowCloseRequested) #页面关闭请求 三.支持页面下载请求 关键代码 self.page().profile().downloadRequested.connect(self.on_downloadRequested) #页面下载请求 【如下代码,完全复制,直接运行,即可使用】 import sys import os import datetime from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtWebEngineWidgets import QWebEngineView,QWebEng...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS关闭SELinux安全模块
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装