博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2.理解ASP.NET MVC的执行过程
阅读量:5099 次
发布时间:2019-06-13

本文共 1288 字,大约阅读时间需要 4 分钟。

个人网站:

英语好的朋友直接看官方教程:

理解ASP.NET MVC的执行过程

本篇文章将帮助理解ASP.NET MVC的执行过程,学习怎么ASP.NET MVC 框架怎么一步步处理浏览器响应的。

当您请求一个ASP.NET MVC 的Web应用程序时,首先传递一个UrlRoutingModule对象,它是一个Http模块,由它解析请求并根据路由选择执行。UrlRoutingModule对象选择第一个匹配当前请求的route对象(route对象是继承并实现RouteBase的类,是一个Route类的实例。)如果没有和它匹配成功,UrlRoutingModule一般什么都不做,让请求继续回到ASP.NET或IIS中去。
Route选择对象后,获得与UrlRoutingModule相关的IRoteHandler对象,在一个MVC应用程序中常用来当做是MvcRouteHandler的一个实例,IRouteHandler创建一个IHttpHandler对象并将其传递到一个IHttpContext对象中去,在默认的情况下,这个Mvc的IHttpHandler实例就是MvcHandler对象,MvcHandler对象决定由哪个最终的Controller(控制器)来处理。
注意: 在IIS7.0下运行ASP.NET MVC Web应用程序时,MVC不要求修改文件扩展名,而在IIS6.0下需要为处理程序映射扩展名为.mvc的ASP.NET ISAPI DLL
ASP.NET MVC 框架的切入点是模块和处理程序,他们执行下面的操作:

  • 在MVC Web应用程序中选择控制器
  • 获取控制器的实例
  • 调用控制器的Execute方法
下面是ASP.NET MVC执行周期中所经历的阶段:
阶段
详细
接收的第一个请求
在Global.asax文件中,在RouteTable中添加Route对象。
执行路由
UrlRoutingModule模块先从RouteTable集合中依次匹配Route,创建RouteData对象,然后创建RequestContext(IHttpContext)对象。
创建mvc请求处理程序
MvcRouteHandler对象创建一个MvcHandler类的实例然后传递RequestContext对象实例。
创建控制器
MvcHandler实例调用了Execute方法
调用action
一般的Controller(控制器)都继承自Controller基类,所以,ContrllerActionInvoker对象决定调用哪个控制器的action方法并调用。
执行结果

一般的,action方法可以接收用户输入并获取结果,然后返回一个结果类型来返回结果:

ViewResult(呈现一个视图)

RedirectToRouteResultRedirectResultContentResultJsonResult

转载于:https://www.cnblogs.com/circleLee/archive/2012/05/24/2516094.html

你可能感兴趣的文章
Python-requests之POST Data的json问题
查看>>
【Linux高级驱动】网卡驱动分析
查看>>
字符串处理函数
查看>>
jenkins修改时区
查看>>
比较git commit 两个版本之间次数
查看>>
jQuery.support
查看>>
java实现的加密解密
查看>>
网页瀑布流效果实现的几种方式
查看>>
LINUX与UNIX区别在哪
查看>>
python 快速排序代码
查看>>
Python装饰器学习(九步入门)
查看>>
通信原理1
查看>>
前端基础之BOM和DOM和三个小示例(计时器、搜索框、select联动)
查看>>
错误和异常处理(7)
查看>>
TP5.0 调用bootstrap分页类显示分页
查看>>
【LeetCode】167. Two Sum II - Input array is sorted
查看>>
如何在g++中添加include文件的目录
查看>>
BlockingQueue深入解析
查看>>
网络编程
查看>>
POJ -2236 Wireless Network
查看>>