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中,会先执行本身,再执行模板页和子页, 但是执行顺序和页面内容的输出顺序并不一致。模板中后输出的内容可以在页面中先输出的内容的前面
- MVC中使用DropDownList
- MVC中CheckBox
- mvc中@RenderSection()
- python如何编写一个用户登录系统(Python实现的登录验证系统完整案例基于搭建的MVC框架)
- MVC中数据验证
- php框架初始化教程学习(PHP从零开始打造自己的MVC框架之类的自动加载实现方法详解)
- mysql实现mvc(mysql的MVCC多版本并发控制的实现)
- MVC中的ActionResult
- MVC中JavaScriptResult
- MVC升级后报"当前上下文中不存在ViewBag"错的解决方法
- Asp.net Mvc模型绑定
- MVC过滤器的用法
- MVC中outputcache缓存
- mvc中@helper的用法
- mysql数据结构讲解(详解MySQL 数据库隔离级别与MVCC)
- mvc中Scripts.Render、Styles.Render
- 乡村爱情15 宋晓峰怀疑自己孩子,腾飞与姜奶奶亲子鉴定出结果(宋晓峰怀疑自己孩子)
- 《乡村爱情13》开播,新版刘能以假乱真,编剧思维进入瓶颈(新版刘能以假乱真)
- 当年的 白洋淀战神 练肌肉 嘎子哥也成为行走的荷尔蒙(当年的白洋淀战神)
- 肌肉小子陈康, 亚洲巨兽 黄哲勋,哪个才是你的菜(肌肉小子陈康亚洲巨兽)
- 新闻周刊 青岛网红 赵厂长 编段子一箩筐输出快乐,陪父亲十二载勇斗病魔(新闻周刊青岛网红)
- 44岁夏雨演谋女郎爸,大其24岁却看不出,互动不怕袁泉吃醋(44岁夏雨演谋女郎爸)
热门推荐
- dedecms会员入驻(dedecms会员注册成功后直接跳转到验证的邮箱地址)
- 阿里云ecs负载均衡(阿里云ECS的CPU100%排查)
- python爬虫入门自学(自学python爬虫的建议和周期预算)
- 仅主机模式搭建hadoop集群(阿里云服务器搭建hadoop集群补充)
- java温度转换自动识别(Apache Calcite 实现方言转换的代码)
- python对列表排序(Python实现对特定列表进行从小到大排序操作示例)
- vue浏览pdf文件(如何在vue中使用pdfjs预览pdf文件)
- 织梦网址首页如何布局(去掉织梦建站或者仿站时首页访问地址后的index.html)
- laravel请求耗时(Laravel统计一段时间间隔的数据方法)
- 如何将数据从View传递到控制器