您的位置:首页 > 编程学习 > ASP.NET > 正文

asp.net MVC处理流程

更多 时间:2014-12-14 类别:编程学习 浏览量:545

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