asp.net中MVC的处理流程详解

你虚度的今日是昨日逝去的人无限向往的明天。美丽的早晨,把压力释放,清凉的秋风,把欢乐吹响,温柔的阳光,把温馨点亮,轻松的心情,把幸福送上,早安!

asp.net MVC 分为主要的Controller 、Action、以及Views

下面来分析Asp.net MVC的处理流程:

Controller 负责将获取Model数据并将Model传递个View对象,通知View对象显示。

处理流程:

1.用户发起请求---》UrlRouting获取请求—》MvcRouteHandler.GetHttpHandler()—>MvcHandler.ProcessRequest()

2.UrlRouting获取浏览器发起的请求

将RoutData与HttpContext合并成为RequestContext传递到IRoutHandler接口,IRoutHandler接口的实现类MvcRouteHandler接口到RequestContext参数,返回一个MvcHandler对象,并且为这个对象赋值RequestContext

3.MvcHandler对象

根据RequestContext参数解析出RouteData以及HttpContext,根据RouteData来查找出Controller以及对象的Action及其Parameters

4.MvcHandler .ProcessRequest()方法的处理流程

MvcHandler对象根据工厂方法获取到具体的Controller---->Controller.Execute()--->释放Controller对象

这其中最主要的是MvcHandler对象根据传入的RequestContext参数来获取到具体的Controller,并执行其Execute()方法

5.Controller.Execute()方法处理流程 查找Action

获取Action--->调用ActionResult(Abstract方法)的ActionResult.ExecuteResult()方法

6.ActionResult.ExecuteResult()方法

获取到IView对象,--》根据Iview对象的页面路径获取到具体的Page,--->调用IView.RenderView()方法显示页面

IView对象中存储的是页面的路径地址,最终通过页面引擎(View Engine)使用该路径生成具体的页面类,ViewPage(System.Web.Mvc.ViewPage)是实现了IView接口的对象。

7,最终页面就可以正确的显示。

ViewPage.RenderPartialView() 显示.ascx文件或者是ViewPage.RenderView() 显示.aspx文件。

现在MVC 3中使用的是Razor视图引擎,和WebFormViewEngine一样的处理流程

到此这篇关于asp.net MVC处理流程的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持。

标签: asp net