当前位置:网站首页>我理解的MVC
我理解的MVC
2022-07-19 05:21:00 【我厂今天夺冠吗】
1、MVC简介
ASP.NET两种主流web开发方式是ASP.NET WebForms和ASP.NET MVC,目前更流行的是MVC方式。MVC版本4.0、5.0、6.0(移除了Web Form,进一步增强前端:内置了Node.js、bootstrap等,支持Node.js、Python开发,支持Android、Linux和iOS开发),.NET Core2.0(.NET最新技术,支持跨平台)
Node.js 就是运行在服务端的 JavaScript
bootstrap是目前比较受欢迎的前端框架。Bootstrap 是基于 HTML5、CSS3、JAVASCRIPT 的,它简洁灵活,使得 Web 开发更加快捷(在MVC6中已集成)
MVC是软件开发时使用的一种框架,是web应用程序的一种开发方式,它将Web应用程序的开发过程大致分割成3个主要单元,即模型(Model)、视图(View)、控制器(Controller),它们的功能分别如下:
M:Model是存储或处理数据的组件,主要用于实现业务逻辑层对实体类相应数据库进行操作(用于存储应用程序的核心类)。
V:View是用户接口层组件,主要用于用户界面的呈现,包括输入和输出
C:Controller是处理用户交互的组件,主要负责转发请求。接收用户请求,对请求进行处理(调用业务逻辑层),并将数据从Model中获取并传给指定的View。(用于存储所有控制器类,控制器负责处理请求)
ASP.NET MVC特点/优点:
更加简洁,更加接近原始的“请求—处理—响应”
MVC只是表示层的一种方式(和WebForm一样,第四章用WebForm)
松耦合、易于扩展和维护
更适合于大型项目和团队开发(有利于分工合作)
2、MVC请求过程
当用户在客户端界面发送一个Request请求后,请求会被传递给Routing路由并对请求的URL进行解析,然后找到对应的Controller中的Action方法并执行该Action方法中的代码。Action方法执行完毕后将ViewResult视图结果返回给视图引擎处理,最后生成Response响应报文返回给客户端浏览器。
Action就是一个方法,该方法用于处理请求并返回请求响应结果,该方法的返回值为ActionResult类型。(控制器下的所有方法都称之为Action)
3、Routing介绍
Routing是指用于识别URL的规则,当客户端发送请求时根据该规则来识别请求的数据,将请求传递给对应的Controller的Action方法执行。RouteConfig.cs
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "AdminLogin", action = "Login", id = UrlParameter.Optional }
);
Routes的MapRoute()方法定义路由规则。其中name表示规则名称并且该值必须唯一,url表示获取数据的规则,如请求的url是localhost/home/index,则home/index对应了上述代码中的{controller}/{action}/{id}结构,所以识别出controller是home,action是index,id则为默认的空字符串。
边栏推荐
- 2020-09-17
- About querying basic resource information and viewing key data
- [resource record] Introduction to Bayesian neural network (BNN), common packages and differences
- 【资源记录】作为程序员 对统计学中的卡方分布/检测,t分布/检测,f分布/检测 的自学记录
- 【资源记录】Bayesian Neural Network(BNN)介绍,常见package及区别
- CUDA 环境搭建
- gocore-v2框架发布-集成脚手架能力
- 猫和狗的分类例子-Kaggle
- Kingbasees database administrator's Guide -- 13 table management
- 使用 gst-launch 小记
猜你喜欢
Qt5.12安装错误提示:C:\Qt5.12.11\vcredist\vcredist_msvc2019_x86.exe /norestart /q
关于正向代理和反向代理的理解
Nacos - 配置管理中心(阿里开源)
分布式唯一ID
斐讯k1刷入Breed以及openwrt的教程
Practice of online problem feedback module (VII): installation and deployment of swagger2
Scala案例(伴生对象)
Introduction to the structure of gocore-v2 framework scaffold generation project
Go zero business development Arsenal
Gocore-v2 framework - quick start
随机推荐
LVM and disk quotas
Solution to unmount failure using umount command
Message queue for inter process communication (with relevant executable code)
Scala案例(伴生对象)
Lord Liu. Pytoch deep learning practical learning.
Redash - 强大的开源数据可视化平台
在线问题反馈模块实战(七):安装部署swagger2
总结2-深度学习网络搭建学习
CUDA 环境搭建
平台化如何助力研发效率提升?
Kubernetes命令行管理工具 — Kubectl
搜索框的简易设置方式
Solr搜索引擎 — 中文全拼简拼分词
解决几个常见问题
MongoDB
Latex ieee paper首页标题下方插入跨分栏图片,并解决脚注问题
LVM (PV, PE, VG, LV)
ModuleNotFoundError: No module named 'gflags'
websocket总结
常用软件快捷键