日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

ASP.NET MVC笔记

發布時間:2025/6/17 asp.net 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ASP.NET MVC笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ASP.NET MVC的應用程序生命周期還是跟原來ASP.NET WebForm一樣沒有區別,只是引入MVC后,加了一個UrlRoutingModule模塊,該模塊用來捕獲應用程序生命周期中的PostResolveRequestCache事件,當事件觸發時然后選擇合適的IHttpHandler來處理請求

那是如何獲取IHttpHandler的呢,我們在Global.asax的Application_Start事件中寫routes.MapRoute注冊路由時,會給路由對象Route創建一個MvcRouteHandler,該對象調用GetHttpHandler方法返回MvcHandler 對象用來處理接下來的操作。我們看到這個處理程序已經不是原來WebForm時的Page了。

獲取完IHttpHandler后應用程序生命周期繼續往下執行,經過一些事件后最后終于觸發了CallHandlerExecutionStep,也就是之前創建的MvcHandler開始要接手處理了,它將會完成接下來的控制器方法執行,以及視圖查找和呈現,核心東西都在這里了,所以要好好來分析下。

MvcHandler是一個IHttpAsyncHandler,它是一個異步的,因此它不是執行ProcessRequest方法了,取而代之的是BeginProcessRequest和EndProcessRequest方法。在BeginProcessRequest內部通過調用RequestContext.RouteData獲取controller控制器的名字,接下來ControllerFactory根據前面獲取的控制器名稱來創建controller實例。

接下來MvcHandler執行EndProcessRequest方法,controller實例調用Execute方法,內部通過另一個方法ExecuteCore執行核心操作。該方法中包含了很多的執行步驟,首先調用PossiblyLoadTempData(),控制器上下文ControllerContext判斷當前請求是否IsChildAction來決定是否加載TempData數據,如果是ChildAction則不加載。

然后RouteData 獲取當前Action的方法名,ControllerActionInvoker調用InvokeAction方法,在InvokeAction方法中執行我們在Controller中定義的方法,執行方法的前后后我們可以注冊過濾器,以讓我們在執行action的前后做一些自己想做的事情。所以第一步要做的是獲取所有注冊過濾器,這些過濾器信息獲取后存在一個叫FilterInfo對象中,其中包含了AuthorizationFilters,ActionFilters,ResultFilters ,接下來調用方法GetParameterValues(controllerContext, actionDescriptor)來獲取action的參數。

調用InvokeActionMethodWithFilters方法執行action和actionfilters,這順序一般是OnActionExecuting->ActionMethod->OnActionExecuted。這邊主要講ActionMethod方法因為它才真正代表了我們Controller中那些Action所執行的代碼。獲取Action參數值,封裝ActionMethodDispatcher里面包含我們要執行的action的MethodInfo信息,ActionMethodDispatcher? 執行Execute進而進入到action的執行,當執行完action通常返回一個ActionResult 這里我們讓其返回一個ViewResult(ActionResult的一個子類),當然還有其他ActionResult ,譬如JsonResult,JavaScriptResult,FileResult,EmptyResult等等,而ViewResult 表示我們要向客戶端呈現的是一個視圖,通常是我們在Views文件夾下建的那些.aspx文件,當然不一定是.aspx,不同的視圖引擎實現不一樣。當我們寫下return View()即表示返回一個ViewResult ,內部調用的是重載的方法View(string viewName, string masterName, object model)方法,你也可以直接調用該方法,順便傳入視圖名等其他信息,調用new ViewResult{iewName = viewName,? MasterName = masterName, ViewData = ViewData, TempData = TempData},然后返回該對象。執行完ActionMethod后來個OnActionExecuted操作收尾。

調用InvokeActionResultWithFilters方法執行result和resultfilters,這順序一般是OnResultExecuting->ResultExecut->OnResultExecuted。這邊主要講ResultExecut因為它涉及到視圖的查找與呈現,其中視圖的呈現類似原來WebForm下Page的執行過程。

調用ViewResult 的FindView方法查找視圖。內部通過ViewEngineCollection?? 的FindView來實現。ViewEngineCollection 是一個視圖引擎的集合,在MVC3中包含了兩個視圖引擎WebFormViewEngine和RazorViewEngine, 查找的過程會先獲取Controller的名稱,然后結合ViewName,找到視圖所在的路徑字符串,創建一個View對象,其中屬性
ViewPath即為之前找到的視圖路徑,接著創建ViewEngineResult?? 對象,將View對象賦給ViewResult的View屬性,執行View.Render呈現視圖,根據ViewPathViewPath獲取視圖實例(Page對象),執行Page對象的ProcessRequest方法,這個我想大家都很熟悉了吧,哈哈。

最后釋放視圖,退出ResultExecute,這樣視圖的呈現就結束了。

執行OnResultExecuted。調用PossiblySaveTempData保存TempData數據。到這里Controller就執行完成了,退出ExecuteExecute方法,釋放Cotroller對象。然后退出MvcHandler的執行,繼續應用程序生命周期接下來的那些事件。

轉載于:https://www.cnblogs.com/fuyun2000/archive/2013/04/27/3046153.html

總結

以上是生活随笔為你收集整理的ASP.NET MVC笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: av观看网址| 一区二区三区观看 | 日本午夜视频 | 日韩狠狠 | 狠色综合7777夜色撩人 | 欧美日韩在线综合 | 久久伊人影视 | √天堂在线| 玖玖爱在线精品视频 | 欧美日本激情 | 亚洲一级视频在线观看 | 在线观看v片 | 欧美三级午夜理伦三级老人 | 日日操夜夜骑 | 8mav在线 | 亚洲精品av中文字幕在线在线 | 亚洲看片 | 日韩欧美视频在线播放 | av影视天堂 | 蜜桃视频成人在线观看 | 一本大道综合伊人精品热热 | 日韩av毛片在线观看 | 波多野结衣av一区二区全免费观看 | 日韩不卡一二区 | 国产一区二区毛片 | 亚洲AV成人无码精品久久盆瓶 | 婷婷久 | 五月天激情在线 | 玖玖在线视频 | 国产精品一区二区三区免费视频 | 欧美一区二区三区激情啪啪 | 爱看av在线 | 包射屋 | 手机福利视频 | 一级日韩片 | 久久久精品久久久久 | 日韩毛片高清在线播放 | 午夜av在线免费观看 | 日韩欧美aⅴ综合网站发布 国产成人一区二区三区小说 | 边添小泬边狠狠躁视频 | 大桥未久视频在线观看 | 欧美69精品久久久久久不卡 | 欧美色狠 | 国产日韩视频在线 | 日本欧美不卡 | 被灌满精子的波多野结衣 | 欧美日韩视频在线 | 久久久久久一级片 | 男女洗澡互摸私密部位视频 | 极品少妇一区二区 | 久久av无码精品人妻系列试探 | 亚洲女同一区二区 | 国产女人18毛片18精品 | 国产99久久久久久免费看 | 欧美成免费 | 婷婷丁香六月天 | 国产无 | 久久综合精品国产二区无码不卡 | 国产伊人精品 | 又污又黄又爽的网站 | 一级片在线免费观看 | 日韩中文字幕av在线 | 亚洲精品视频免费在线观看 | 国产美女精品一区二区三区 | www.蜜桃av.com| 久久午夜免费视频 | 亚洲av无码一区二区乱孑伦as | 91精品国产aⅴ一区二区 | 99国产精品人妻噜啊噜 | 特黄a级片 | 国产精品中文久久久久久 | 亚洲一区二区自拍偷拍 | 男女啪啪在线观看 | 国产大片b站 | 国产高清在线精品 | 爱爱免费网址 | 粗大的内捧猛烈进出在线视频 | 国产啊v在线 | 日韩色在线观看 | 午夜tv影院 | 国产五区 | 中文字幕avav | 97影院在线午夜 | 名校风暴在线观看免费高清完整 | 午夜一区二区三区免费观看 | 天堂av在线免费 | 久久久国产一区二区三区 | 91精品国产91久久久久久久久久久久 | 免费观看一区 | 91黄色免费看 | 五月99久久婷婷国产综合亚洲 | 一区二区三区毛片 | 色婷婷综合视频 | 天天操婷婷 | 蜜臀一区二区三区精品免费视频 | 无码人妻一区二区三区av | 超碰在线99 | 香蕉大人久久国产成人av | 日韩和欧美一区二区 |