日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯網營銷解決方案
淺析ASP.NETMVC生命周期

我對ASP.NET MVC生命周期還是興趣很濃,于是提出兩個問題:

一個HTTP請求從IIS移交到ASP.NET運行時,ASP.NETMVC是在什么時機獲得了控制權并對請求進行處理呢?處理過程又是怎樣的?

以IIS7中ASP.NET MVC生命周期為例,來自MSDN的一張HTTP請求處理過程發(fā)生事件的簡圖,后面我列出了一個完整的事件列表。既然ASP.NET MVC還是以ASP.NET運行時為基礎那么它必然要在ASP.NET MVC生命周期中對請求進行截獲。***反應當然是去web.config里面去翻翻,我們可以看到UrlRoutingModule的配置節(jié):

 
 
 
 
  1.  name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.
    Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

看到這里我們的***個問題實際上已經有了答案:時機是在PostResolveRequestCache和PostMapRequestHandler.

ResolveRequestCache event
Occurs when ASP.NET finishes an authorization event to let the caching modules serve requests from the cache, bypassing execution of the event handler (for example, a page or an XML Web service).

源文檔 >

PostMapRequestHandler event
Occurs when ASP.NET has mapped the current request to the appropriate event handler.

源文檔 >

我們使用VS2008中ASP.NET Mvc模板創(chuàng)建一個Demo完成后續(xù)的討論,當我們訪問/Home的時候發(fā)生了什么呢?
1.Request 請求到來
2.IIS 根據請求特征將處理權移交給 ASP.NET
3.UrlRoutingModule將當前請求在 Route Table中進行匹配
4.UrlRoutingModule在RouteCollection中查找Request匹配的RouteHandler,默認是MvcRouteHandler MvcRouteHandler 創(chuàng)建 MvcHandler實例.
5.MvcHandler執(zhí)行 ProcessRequest.
6.MvcHandler 使用 IControllerFactory 獲得實現了IController接口的實例,找到對應的HomeController
7.根據Request觸發(fā)HomeController的Index方法
8.Index將執(zhí)行結果存放在ViewData
9.HomeController的Index方法返回 ActionResult
10.Views/Home/Index.aspx將 ViewData呈現在頁面上
11.Index.aspx執(zhí)行ProcessRequest方法
12.Index.aspx執(zhí)行Render方法 輸出到客戶端

通過閱讀ASP.NET Mvc的源碼,我們可以得到更為詳細的處理過程,我盡可能的忽略掉枝節(jié),強調請求處理的流程.我們從Global.asax.cs文件切入。


分享名稱:淺析ASP.NETMVC生命周期
URL地址:http://www.dlmjj.cn/article/dppppcp.html