asp.net MVC处理流程
asp.net MVC处理流程
asp.net MVC处理流程一、asp.net MVC处理流程主要包含8个步骤:
1、RouteTable(路由表)的创建
2、UrlRoutingModule 请求拦截
3、Routing engine 确定route
4、route handler 创建相关的IHttpHandler实例
5、IHttpHandler实例确定Controller(控制器)
6、Controller执行
7、一个视图引擎创建
8、视图呈现
二、asp.net MVC处理流程的图形表示
三、在MVC处理底层之上,相关流程如下
1、Global.asax里,MvcApplication对象的Application_Start()事件中,调用 RouteConfig.RegisterRoutes(RouteTable.Routes); 来注册路由规则
2、RouteConfig.RegisterRoutes()方法里,给出的默认规则为 {controller}/{action}/{id}
a. 在有特别需要的时候,到这里来修改规则。
b. 未指明Controller默认为HomeContoller,未指定Action默认为Index, 也就是说,直接访问站点时,会默认导航到HomeController下的Index Action.
c. Action后跟的内容会被映射为名为id的参数。 比如: User/Delete/1 会匹配到 UserController的 Delete(int id) 方法。
d. Action分为[HttpGet]和[HttpPost]两种,与HTTP的GET和POST方式对应。 即直接请求的URL只会匹配[HttpGet]方法,而未注明[HttpPost]的方法即默认为[HttpGet]. Post的Action一般会有一个Model参数,MVC会自动将表单里的数据按约定的规则填充到Model实体对象里。 这个约定的规则,就是表单的Name与属性名称有个对应规则。
3、MVC负责按上述规则将执行流程导入合适的Action中,即Controller的某个方法中
4、Action中,可以直接返回字符串,输出到浏览器, 也可以返回到ActionResult对象, 该对象指向一个View页面,并且附带了一些属性作为传递数据的容器
ActionResult通常通过调用Controller对象的View(…)方法得到,也可以通过Redirect()方法或 RedirectToAction()方法得到, 不过后面两种方法主要用于跳转到其它Controller,因为后面的方法不能传递Model对象。 Action向View传递数据,可以通过Model、ViewBag或ViewData三种容器,其中Model是强类型的,所以是最优先的方式。
5、View中,会先执行本身,再执行模板页和子页, 但是执行顺序和页面内容的输出顺序并不一致。模板中后输出的内容可以在页面中先输出的内容的前面
- php框架使用方法大全(PHP MVC框架中类的自动加载机制实例分析)
- mvc razor 输出html
- MVC中的ActionResult
- mysql数据结构讲解(详解MySQL 数据库隔离级别与MVCC)
- mvc中Scripts.Render、Styles.Render
- iiS7中如何部署MVC3程序
- mvc中@RenderSection()
- MVC使用HandleErrorAttribute自定义异常
- MVC中CheckBox
- mvc JavaScriptResult的用法
- MVC Model验证
- Asp.net Mvc模型绑定
- MVC过滤器的用法
- mysql实现mvc(mysql的MVCC多版本并发控制的实现)
- MVC中JavaScriptResult
- MVC中BeginForm
- 四月新番CP人气榜公布,《剃须》两度上榜,沙优不是女朋友(四月新番CP人气榜公布)
- 2019年外媒秋季新番动画角色CP排行榜,桐人和爱丽丝落榜(2019年外媒秋季新番动画角色CP排行榜)
- 新一小兰领衔 盘点动漫中的那些 远距离恋爱情侣(盘点动漫中的那些)
- 大事件 合肥四中火了(大事件合肥四中火了)
- 翼龙贷组织出借人调研 感受鄱阳 借 来的致富路(翼龙贷组织出借人调研)
- 2023新国风戏曲教育寒假集训班汇报演出《戏娃闹元宵》图文报道(2023新国风戏曲教育寒假集训班汇报演出戏娃闹元宵图文报道)
热门推荐
- 如何有效的限制上传文件类型
- net微服务架构部署方式(基于Apache的支持.NET2.0的Web服务器搭建)
- app软件和网站对服务器的区别(网站服务器与APP服务器之间有何区别)
- vue左右联动列表(vue+iview的菜单与页签的联动方式)
- navicat创建MySql定时任务的方法详解(navicat创建MySql定时任务的方法详解)
- pythonjson库(Python常用的json标准库)
- vue多个对象实现双向数据绑定(利用js实现Vue2.0中数据的双向绑定功能)
- drools动态执行规则(使用swoole 定时器变更超时未支付订单状态的解决方案)
- javascript 数据分析(利用JavaScript差集实现一个对比小工具)
- jquery on绑定多个事件