asp.net MVC 的处理流程

简介: asp.net MVC 分为主要的Controller 、Action、以及Views 下面来分析Asp.net MVC的处理流程: Controller 负责将获取Model数据并将Model传递个View对象,通知View对象显示。

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一样的处理流程

下面附上Pro Asp.net MVC 的作者的一副图

我又回来了,回到了技术最前线,
相关文章
|
11月前
|
监控 前端开发 API
一款基于 .NET MVC 框架开发、功能全面的MES系统
一款基于 .NET MVC 框架开发、功能全面的MES系统
317 5
|
开发框架 前端开发 JavaScript
ASP.NET MVC 教程
ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。
225 7
|
存储 开发框架 前端开发
ASP.NET MVC 迅速集成 SignalR
ASP.NET MVC 迅速集成 SignalR
256 0
|
开发框架 前端开发 .NET
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
194 0
|
开发框架 前端开发 安全
ASP.NET MVC 如何使用 Form Authentication?
ASP.NET MVC 如何使用 Form Authentication?
338 0
|
前端开发 数据安全/隐私保护
net MVC中的模型绑定、验证以及ModelState
net MVC中的模型绑定、验证以及ModelState 模型绑定 模型绑定应该很容易理解,就是传递过来的数据,创建对应的model并把数据赋予model的属性,这样model的字段就有值了。
1808 0
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
431 0
|
存储 开发框架 前端开发
[回馈]ASP.NET Core MVC开发实战之商城系统(五)
经过一段时间的准备,新的一期【ASP.NET Core MVC开发实战之商城系统】已经开始,在之前的文章中,讲解了商城系统的整体功能设计,页面布局设计,环境搭建,系统配置,及首页【商品类型,banner条,友情链接,降价促销,新品爆款】,商品列表页面,商品详情等功能的开发,今天继续讲解购物车功能开发,仅供学习分享使用,如有不足之处,还请指正。
309 0
|
开发框架 前端开发 .NET
[回馈]ASP.NET Core MVC开发实战之商城系统(一)
[回馈]ASP.NET Core MVC开发实战之商城系统(一)
394 0
|
开发框架 .NET
Asp.Net Core 使用X.PagedList.Mvc.Core分页 & 搜索
Asp.Net Core 使用X.PagedList.Mvc.Core分页 & 搜索
449 0