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中获取当前action、controller
- MVC中使用jQuery加载分部视图(PartialView)
- MVC中BeginForm
- MVC中JavaScriptResult
- mvc中Action前HttpPost的作用
- MVC过滤器的用法
- Asp.net Mvc模型绑定
- mvc编译时,让View中的错误提示
- php框架使用方法大全(PHP MVC框架中类的自动加载机制实例分析)
- mvc中Scripts.Render、Styles.Render
- MVC中JS获取后台的数据
- python如何编写一个用户登录系统(Python实现的登录验证系统完整案例基于搭建的MVC框架)
- mvc在视图中使用@helper封装输出代码
- mysql实现mvc(mysql的MVCC多版本并发控制的实现)
- MVC中报get_RazorKeywords()错误的解决方法
- php框架初始化教程学习(PHP从零开始打造自己的MVC框架之类的自动加载实现方法详解)
- 百事大吉蓝底 绿底手机高清壁纸(绿底手机高清壁纸)
- 蓝底证件照怎么制作 证件照换底色 换尺寸快速搞定(蓝底证件照怎么制作)
- 你喜欢足球吗 足球如何点亮世界的(足球如何点亮世界的)
- 不可分鸽是什么梗(不可分鸽是什么梗)
- 古代的鸽子是爱情的象征,并非和平的使者(古代的鸽子是爱情的象征)
- 一课译词 放鸽子(一课译词放鸽子)
热门推荐
- ssm框架中的页面怎么写(apache SHTML网页SSI使用详解)
- python线程自动停止了(解决Python中定时任务线程无法自动退出的问题)
- python numpy数组拼接(Python快速转换numpy数组中Nan和Inf的方法实例说明)
- mysql 快速迁移到历史表(MySQL 线上日志库迁移实例)
- 数据推入阿里云rds(将阿里云RDS中的数据库迁移到本机自建数据库的可用过程RDS数据迁移)
- 支持多种数据库的数据库管理工具:navicat premium
- python用于机器人(python实现nao机器人身体躯干和腿部动作操作)
- html5拖动效果怎么写(Html5 滚动穿透的方法)
- 云服务器怎么加数据盘(云服务器的硬盘模式、类型介绍)
- 挂游戏用云服务器好不好?(挂游戏用云服务器好不好?)