使用代码测试ASP.NET MVC2执行流程
测试代码点击这里下载,通过此代码也剖析了MVC2的扩展点和扩展方式(其实在不调用基类的情况下填满所有重写的方法也就完成了大半个MVC框架)。
MVC执行流程如下(可以直接下载代码运行页面查看此结果):
- ----------------开始执行TestMvcApplication 类的 Application_Start 方法 -- 05:50:03:9219
 - -------------开始执行TestUrlRoutingModule 类的 PostResolveRequestCache 方法 -- 05:50:04:1740
 - ----------------开始执行TestRoute 类的 GetRouteData 方法 -- 05:50:04:1750
 - -------------------开始执行TestRoute 类的 ProcessConstraint 方法 -- 05:50:04:1750
 - ---------------------结束执行TestRouteConstraint 类的 Match 方法返回了:True -- 05:50:04:1820
 - -------------------结束执行TestRoute 类的 ProcessConstraint 方法返回了:True -- 05:50:04:1820
 - ----------------结束执行TestRoute 类的 GetRouteData 方法返回了:RouteData -- 05:50:04:1840
 - ----------------开始执行TestMvcRouteHandler 类的 GetHttpHandler 方法 -- 05:50:04:1850
 - ----------------结束执行TestMvcRouteHandler 类的 GetHttpHandler 方法返回了:TestMvcHandler -- 05:50:04:1850
 - -------------开始执行TestUrlRoutingModule 类的 PostMapRequestHandler 方法 -- 05:50:04:1860
 - --------------开始执行TestMvcHandler 类的 BeginProcessRequest 方法 -- 05:50:04:1870
 - -----------------开始执行TestMvcHandler 类的 AddVersionHeader 方法 -- 05:50:04:1870
 - -----------------开始执行TestControllerFactory 类的 CreateController 方法传入了:Home -- 05:50:04:1890
 - -------------------开始执行TestControllerFactory 类的 GetControllerType 方法传入了:Home -- 05:50:04:1890
 - -------------------结束执行TestControllerFactory 类的 GetControllerType 方法返回了:RuntimeType -- 05:50:04:2220
 - -------------------开始执行TestControllerFactory 类的 GetControllerInstance 方法传入了:HomeController -- 05:50:04:2220
 - -------------------结束执行TestControllerFactory 类的 GetControllerInstance 方法返回了:HomeController -- 05:50:04:2230
 - -------------开始执行TestMvcHandler 类的 EndProcessRequest 方法 -- 05:50:04:2230
 - --------------------开始执行TestController 类的 Execute 方法 -- 05:50:04:2230
 - ----------------------开始执行TestController 类的 Initialize 方法 -- 05:50:04:2230
 - ----------------------开始执行TestController 类的 ExecuteCore 方法 -- 05:50:04:2240
 - --------------------------开始执行TestController 类的 CreateTempDataProvider 方法 -- 05:50:04:2240
 - --------------------------结束执行TestController 类的 CreateTempDataProvider 方法返回了:TestTempDataProvider -- 05:50:04:2240
 - --------------------------开始执行TestTempDataProvider 类的 LoadTempData 方法 -- 05:50:04:2240
 - -------------------------开始执行TestController 类的 CreateActionInvoker 方法 -- 05:50:04:2240
 - -------------------------结束执行TestController 类的 CreateActionInvoker 方法返回了:TestActionInvoker -- 05:50:04:2250
 - ------------------------开始执行TestActionInvoker 类的 InvokeAction 方法 -- 05:50:04:2250
 - --------------------------开始执行TestActionInvoker 类的 GetControllerDescriptor 方法 -- 05:50:04:2250
 - --------------------------结束执行TestActionInvoker 类的 GetControllerDescriptor 方法返回了:ReflectedControllerDescriptor -- 05:50:04:2260
 - --------------------------开始执行TestActionInvoker 类的 FindAction 方法传入了:Index -- 05:50:04:2270
 - --------------------------结束执行TestActionInvoker 类的 FindAction 方法返回了:ReflectedActionDescriptor -- 05:50:04:2270
 - --------------------------开始执行TestActionInvoker 类的 GetFilters 方法 -- 05:50:04:2280
 - --------------------------结束执行TestActionInvoker 类的 GetFilters 方法返回了:FilterInfo -- 05:50:04:2300
 - --------------------------开始执行TestActionInvoker 类的 InvokeAuthorizationFilters 方法 -- 05:50:04:2300
 - -----------------------------开始执行TestController 类的 OnAuthorization 方法 -- 05:50:04:2300
 - ----------------------------开始执行TestActionFilterOnControllerAttribute 类的 System.Web.Mvc.IAuthorizationFilter.OnAuthorization 方法 -- 05:50:04:2300
 - ----------------------------开始执行TestActionFilterOnActionAttribute 类的 System.Web.Mvc.IAuthorizationFilter.OnAuthorization 方法 -- 05:50:04:2310
 - --------------------------结束执行TestActionInvoker 类的 InvokeAuthorizationFilters 方法返回了:AuthorizationContext -- 05:50:04:2310
 - --------------------------开始执行TestActionInvoker 类的 GetParameterValues 方法 -- 05:50:04:2310
 - ----------------------------开始执行TestActionInvoker 类的 GetParameterValue 方法 -- 05:50:04:2320
 - -------------------------------------结束执行TestValueProviderFactory 类的 GetValueProvider 方法返回了:TestValueProvider -- 05:50:04:2350
 - -----------------------------------结束执行TestValueProvider 类的 ContainsPrefix 方法返回了:False -- 05:50:04:2380
 - ---------------------------------结束执行TestModelBinder 类的 CreateModel 方法返回了:TestModel -- 05:50:04:2380
 - -----------------------------------结束执行TestModelBinder 类的 GetTypeDescriptor 方法返回了:_AssociatedMetadataTypeTypeDescriptor -- 05:50:04:2390
 - --------------------------------------结束执行TestModelBinder 类的 GetTypeDescriptor 方法返回了:_AssociatedMetadataTypeTypeDescriptor -- 05:50:04:2390
 - ------------------------------------结束执行TestModelBinder 类的 GetModelProperties 方法返回了:PropertyDescriptorCollection -- 05:50:04:2390
 - -----------------------------------开始执行TestModelBinder 类的 BindProperty 方法 -- 05:50:04:2400
 - ----------------------------------------结束执行TestValueProvider 类的 ContainsPrefix 方法返回了:True -- 05:50:04:2400
 - -------------------------------------------结束执行TestValueProvider 类的 ContainsPrefix 方法返回了:True -- 05:50:04:2410
 - ---------------------------------------------结束执行TestValueProvider 类的 GetValue 方法返回了:TestValueProviderResult -- 05:50:04:2430
 - -------------------------------------结束执行TestModelBinder 类的 GetPropertyValue 方法返回了:String -- 05:50:04:2430
 - -------------------------------------开始执行TestModelBinder 类的 SetProperty 方法 -- 05:50:04:2440
 - ------------------------------结束执行TestModelBinder 类的 BindModel 方法返回了:TestModel -- 05:50:04:2450
 - ----------------------------结束执行TestActionInvoker 类的 GetParameterValue 方法返回了:TestModel -- 05:50:04:2450
 - --------------------------结束执行TestActionInvoker 类的 GetParameterValues 方法返回了:Dictionary`2 -- 05:50:04:2450
 - --------------------------开始执行TestActionInvoker 类的 InvokeActionMethodWithFilters 方法 -- 05:50:04:2450
 - -------------------------------开始执行TestController 类的 OnActionExecuting 方法 -- 05:50:04:2460
 - --------------------------------开始执行TestActionFilterOnControllerAttribute 类的 System.Web.Mvc.IActionFilter.OnActionExecuting 方法 -- 05:50:04:2460
 - ----------------------------------开始执行TestActionFilterOnActionAttribute 类的 System.Web.Mvc.IActionFilter.OnActionExecuting 方法 -- 05:50:04:2460
 - -----------------------------------开始执行TestActionInvoker 类的 InvokeActionMethod 方法 -- 05:50:04:2460
 - ------------------------------------------开始执行TestController 类的 View 方法 -- 05:50:04:2500
 - ------------------------------------------结束执行TestController 类的 View 方法返回了:TestViewResult -- 05:50:04:2500
 - -------------------------------------开始执行TestActionInvoker 类的 CreateActionResult 方法 -- 05:50:04:2500
 - -------------------------------------结束执行TestActionInvoker 类的 CreateActionResult 方法返回了:TestViewResult -- 05:50:04:2500
 - -----------------------------------结束执行TestActionInvoker 类的 InvokeActionMethod 方法返回了:TestViewResult -- 05:50:04:2500
 - ----------------------------------开始执行TestActionFilterOnActionAttribute 类的 System.Web.Mvc.IActionFilter.OnActionExecuted 方法 -- 05:50:04:2500
 - --------------------------------开始执行TestActionFilterOnControllerAttribute 类的 System.Web.Mvc.IActionFilter.OnActionExecuted 方法 -- 05:50:04:2510
 - -------------------------------开始执行TestController 类的 OnActionExecuted 方法 -- 05:50:04:2510
 - --------------------------结束执行TestActionInvoker 类的 InvokeActionMethodWithFilters 方法返回了:ActionExecutedContext -- 05:50:04:2510
 - --------------------------开始执行TestActionInvoker 类的 InvokeActionResultWithFilters 方法传入了:TestViewResult -- 05:50:04:2510
 - -------------------------------开始执行TestController 类的 OnResultExecuting 方法 -- 05:50:04:2520
 - --------------------------------开始执行TestActionFilterOnControllerAttribute 类的 System.Web.Mvc.IResultFilter.OnResultExecuting 方法 -- 05:50:04:2520
 - ----------------------------------开始执行TestActionFilterOnActionAttribute 类的 System.Web.Mvc.IResultFilter.OnResultExecuting 方法 -- 05:50:04:2520
 - -----------------------------------开始执行TestActionInvoker 类的 InvokeActionResult 方法 -- 05:50:04:2530
 - -------------------------------------开始执行TestViewResult 类的 ExecuteResult 方法 -- 05:50:04:2530
 - ---------------------------------------开始执行TestViewResult 类的 FindView 方法 -- 05:50:04:2530
 - --------------------------------------------开始执行TestViewEngine 类的 FindView 方法传入了:Index,useCache -- 05:50:04:2540
 - --------------------------------------------结束执行TestViewEngine 类的 FindView 方法返回了:ViewEngineResult -- 05:50:04:2540
 - --------------------------------------------开始执行TestViewEngine 类的 FindView 方法传入了:Index -- 05:50:04:2540
 - ------------------------------------------------开始执行TestViewEngine 类的 FileExists 方法传入了:~/Views/Home/Index.aspx -- 05:50:04:2550
 - ------------------------------------------------结束执行TestViewEngine 类的 FileExists 方法返回了:True -- 05:50:04:2630
 - ----------------------------------------------开始执行TestViewEngine 类的 CreateView 方法传入了:~/Views/Home/Index.aspx -- 05:50:04:2630
 - ----------------------------------------------结束执行TestViewEngine 类的 CreateView 方法返回了:TestView -- 05:50:04:2640
 - --------------------------------------------结束执行TestViewEngine 类的 FindView 方法返回了:ViewEngineResult -- 05:50:04:2640
 - ---------------------------------------结束执行TestViewResult 类的 FindView 方法返回了:ViewEngineResult -- 05:50:04:2640
 - ---------------------------------------开始执行TestView 类的 Render 方法 -- 05:50:04:2640
 - ------------------------------------------------------------------------------开始执行TestRoute 类的 GetVirtualPath 方法 -- 05:50:04:3010
 - ---------------------------------------------------------------------------------开始执行TestRoute 类的 ProcessConstraint 方法 -- 05:50:04:3010
 - -----------------------------------------------------------------------------------结束执行TestRouteConstraint 类的 Match 方法返回了:True -- 05:50:04:3010
 - ---------------------------------------------------------------------------------结束执行TestRoute 类的 ProcessConstraint 方法返回了:True -- 05:50:04:3020
 - ------------------------------------------------------------------------------结束执行TestRoute 类的 GetVirtualPath 方法返回了:VirtualPathData -- 05:50:04:3020
 - ---------------------------------------------------------------------------------------开始执行TestControllerFactory 类的 CreateController 方法传入了:Home -- 05:50:04:3020
 - -----------------------------------------------------------------------------------------开始执行TestControllerFactory 类的 GetControllerType 方法传入了:Home -- 05:50:04:3030
 - -----------------------------------------------------------------------------------------结束执行TestControllerFactory 类的 GetControllerType 方法返回了:RuntimeType -- 05:50:04:3030
 - -----------------------------------------------------------------------------------------开始执行TestControllerFactory 类的 GetControllerInstance 方法传入了:HomeController -- 05:50:04:3030
 - -----------------------------------------------------------------------------------------结束执行TestControllerFactory 类的 GetControllerInstance 方法返回了:HomeController -- 05:50:04:3030
 - --------------------------------------------------------------------------------------------开始执行TestController 类的 Execute 方法 -- 05:50:04:3040
 - ----------------------------------------------------------------------------------------------开始执行TestController 类的 Initialize 方法 -- 05:50:04:3040
 - ----------------------------------------------------------------------------------------------开始执行TestController 类的 ExecuteCore 方法 -- 05:50:04:3050
 - -------------------------------------------------------------------------------------------------开始执行TestController 类的 CreateActionInvoker 方法 -- 05:50:04:3050
 - -------------------------------------------------------------------------------------------------结束执行TestController 类的 CreateActionInvoker 方法返回了:TestActionInvoker -- 05:50:04:3050
 - ------------------------------------------------------------------------------------------------开始执行TestActionInvoker 类的 InvokeAction 方法 -- 05:50:04:3050
 - --------------------------------------------------------------------------------------------------开始执行TestActionInvoker 类的 GetControllerDescriptor 方法 -- 05:50:04:3060
 - --------------------------------------------------------------------------------------------------结束执行TestActionInvoker 类的 GetControllerDescriptor 方法返回了:ReflectedControllerDescriptor -- 05:50:04:3060
 - --------------------------------------------------------------------------------------------------开始执行TestActionInvoker 类的 FindAction 方法传入了:LogOnUserControl -- 05:50:04:3060
 - --------------------------------------------------------------------------------------------------结束执行TestActionInvoker 类的 FindAction 方法返回了:ReflectedActionDescriptor -- 05:50:04:3060
 - --------------------------------------------------------------------------------------------------开始执行TestActionInvoker 类的 GetFilters 方法 -- 05:50:04:3070
 - --------------------------------------------------------------------------------------------------结束执行TestActionInvoker 类的 GetFilters 方法返回了:FilterInfo -- 05:50:04:3070
 - --------------------------------------------------------------------------------------------------开始执行TestActionInvoker 类的 InvokeAuthorizationFilters 方法 -- 05:50:04:3070
 - -----------------------------------------------------------------------------------------------------开始执行TestController 类的 OnAuthorization 方法 -- 05:50:04:3070
 - ----------------------------------------------------------------------------------------------------开始执行TestActionFilterOnControllerAttribute 类的 System.Web.Mvc.IAuthorizationFilter.OnAuthorization 方法 -- 05:50:04:3080
 - --------------------------------------------------------------------------------------------------结束执行TestActionInvoker 类的 InvokeAuthorizationFilters 方法返回了:AuthorizationContext -- 05:50:04:3080
 - --------------------------------------------------------------------------------------------------开始执行TestActionInvoker 类的 GetParameterValues 方法 -- 05:50:04:3080
 - --------------------------------------------------------------------------------------------------结束执行TestActionInvoker 类的 GetParameterValues 方法返回了:Dictionary`2 -- 05:50:04:3080
 - --------------------------------------------------------------------------------------------------开始执行TestActionInvoker 类的 InvokeActionMethodWithFilters 方法 -- 05:50:04:3090
 - -------------------------------------------------------------------------------------------------------开始执行TestController 类的 OnActionExecuting 方法 -- 05:50:04:3090
 - --------------------------------------------------------------------------------------------------------开始执行TestActionFilterOnControllerAttribute 类的 System.Web.Mvc.IActionFilter.OnActionExecuting 方法 -- 05:50:04:3090
 - ---------------------------------------------------------------------------------------------------------开始执行TestActionInvoker 类的 InvokeActionMethod 方法 -- 05:50:04:3100
 - ----------------------------------------------------------------------------------------------------------------开始执行TestController 类的 PartialView 方法 -- 05:50:04:3100
 - ----------------------------------------------------------------------------------------------------------------结束执行TestController 类的 PartialView 方法返回了:TestPartialViewResult -- 05:50:04:3110
 - -----------------------------------------------------------------------------------------------------------开始执行TestActionInvoker 类的 CreateActionResult 方法 -- 05:50:04:3110
 - -----------------------------------------------------------------------------------------------------------结束执行TestActionInvoker 类的 CreateActionResult 方法返回了:TestPartialViewResult -- 05:50:04:3110
 - ---------------------------------------------------------------------------------------------------------结束执行TestActionInvoker 类的 InvokeActionMethod 方法返回了:TestPartialViewResult -- 05:50:04:3120
 - --------------------------------------------------------------------------------------------------------开始执行TestActionFilterOnControllerAttribute 类的 System.Web.Mvc.IActionFilter.OnActionExecuted 方法 -- 05:50:04:3120
 - -------------------------------------------------------------------------------------------------------开始执行TestController 类的 OnActionExecuted 方法 -- 05:50:04:3120
 - --------------------------------------------------------------------------------------------------结束执行TestActionInvoker 类的 InvokeActionMethodWithFilters 方法返回了:ActionExecutedContext -- 05:50:04:3120
 - --------------------------------------------------------------------------------------------------开始执行TestActionInvoker 类的 InvokeActionResultWithFilters 方法传入了:TestPartialViewResult -- 05:50:04:3130
 - -------------------------------------------------------------------------------------------------------开始执行TestController 类的 OnResultExecuting 方法 -- 05:50:04:3130
 - --------------------------------------------------------------------------------------------------------开始执行TestActionFilterOnControllerAttribute 类的 System.Web.Mvc.IResultFilter.OnResultExecuting 方法 -- 05:50:04:3130
 - ---------------------------------------------------------------------------------------------------------开始执行TestActionInvoker 类的 InvokeActionResult 方法 -- 05:50:04:3130
 - -----------------------------------------------------------------------------------------------------------开始执行TestPartialViewResult 类的 ExecuteResult 方法 -- 05:50:04:3140
 - -------------------------------------------------------------------------------------------------------------开始执行TestPartialViewResult 类的 FindView 方法 -- 05:50:04:3140
 - ------------------------------------------------------------------------------------------------------------------开始执行TestViewEngine 类的 FindPartialView 方法传入了:LogOnUserControl,useCache -- 05:50:04:3150
 - ------------------------------------------------------------------------------------------------------------------结束执行TestViewEngine 类的 FindPartialView 方法返回了:ViewEngineResult -- 05:50:04:3150
 - ------------------------------------------------------------------------------------------------------------------开始执行TestViewEngine 类的 FindPartialView 方法传入了:LogOnUserControl -- 05:50:04:3150
 - ----------------------------------------------------------------------------------------------------------------------开始执行TestViewEngine 类的 FileExists 方法传入了:~/Views/Home/LogOnUserControl.aspx -- 05:50:04:3160
 - ----------------------------------------------------------------------------------------------------------------------结束执行TestViewEngine 类的 FileExists 方法返回了:False -- 05:50:04:3170
 - ----------------------------------------------------------------------------------------------------------------------开始执行TestViewEngine 类的 FileExists 方法传入了:~/Views/Home/LogOnUserControl.ascx -- 05:50:04:3170
 - ----------------------------------------------------------------------------------------------------------------------结束执行TestViewEngine 类的 FileExists 方法返回了:False -- 05:50:04:3170
 - ----------------------------------------------------------------------------------------------------------------------开始执行TestViewEngine 类的 FileExists 方法传入了:~/Views/Shared/LogOnUserControl.aspx -- 05:50:04:3180
 - ----------------------------------------------------------------------------------------------------------------------结束执行TestViewEngine 类的 FileExists 方法返回了:False -- 05:50:04:3180
 - ----------------------------------------------------------------------------------------------------------------------开始执行TestViewEngine 类的 FileExists 方法传入了:~/Views/Shared/LogOnUserControl.ascx -- 05:50:04:3190
 - ----------------------------------------------------------------------------------------------------------------------结束执行TestViewEngine 类的 FileExists 方法返回了:True -- 05:50:04:3210
 - --------------------------------------------------------------------------------------------------------------------开始执行TestViewEngine 类的 CreatePartialView 方法传入了:~/Views/Shared/LogOnUserControl.ascx -- 05:50:04:3220
 - --------------------------------------------------------------------------------------------------------------------结束执行TestViewEngine 类的 CreatePartialView 方法返回了:TestView -- 05:50:04:3220
 - ------------------------------------------------------------------------------------------------------------------结束执行TestViewEngine 类的 FindPartialView 方法返回了:ViewEngineResult -- 05:50:04:3220
 - -------------------------------------------------------------------------------------------------------------结束执行TestPartialViewResult 类的 FindView 方法返回了:ViewEngineResult -- 05:50:04:3230
 - -------------------------------------------------------------------------------------------------------------开始执行TestView 类的 Render 方法 -- 05:50:04:3230
 - ----------------------------------------------------------------------------------------------------------------------------------------------------------开始执行TestRoute 类的 GetVirtualPath 方法 -- 05:50:04:3480
 - -------------------------------------------------------------------------------------------------------------------------------------------------------------开始执行TestRoute 类的 ProcessConstraint 方法 -- 05:50:04:3560
 - ---------------------------------------------------------------------------------------------------------------------------------------------------------------结束执行TestRouteConstraint 类的 Match 方法返回了:True -- 05:50:04:3560
 - -------------------------------------------------------------------------------------------------------------------------------------------------------------结束执行TestRoute 类的 ProcessConstraint 方法返回了:True -- 05:50:04:3560
 - ----------------------------------------------------------------------------------------------------------------------------------------------------------结束执行TestRoute 类的 GetVirtualPath 方法返回了:VirtualPathData -- 05:50:04:3570
 - -------------------------------------------------------------------------------------------------------------开始执行TestViewEngine 类的 ReleaseView 方法传入了:TestView -- 05:50:04:3600
 - --------------------------------------------------------------------------------------------------------开始执行TestActionFilterOnControllerAttribute 类的 System.Web.Mvc.IResultFilter.OnResultExecuted 方法 -- 05:50:04:3600
 - -------------------------------------------------------------------------------------------------------开始执行TestController 类的 OnResultExecuted 方法 -- 05:50:04:3610
 - --------------------------------------------------------------------------------------------------结束执行TestActionInvoker 类的 InvokeActionResultWithFilters 方法返回了:ResultExecutedContext -- 05:50:04:3610
 - ------------------------------------------------------------------------------------------------结束执行TestActionInvoker 类的 InvokeAction 方法返回了:True -- 05:50:04:3610
 - -------------------------------------------------------------------------------------------开始执行TestControllerFactory 类的 ReleaseController 方法 -- 05:50:04:3620
 - ----------------------------------------------------------------------------------------------开始执行TestController 类的 Dispose 方法 -- 05:50:04:3620
 - ----------------------------------------------------------------------------------开始执行TestRoute 类的 GetVirtualPath 方法 -- 05:50:04:3620
 - -------------------------------------------------------------------------------------开始执行TestRoute 类的 ProcessConstraint 方法 -- 05:50:04:3620
 - ---------------------------------------------------------------------------------------结束执行TestRouteConstraint 类的 Match 方法返回了:True -- 05:50:04:3630
 - -------------------------------------------------------------------------------------结束执行TestRoute 类的 ProcessConstraint 方法返回了:True -- 05:50:04:3630
 - ----------------------------------------------------------------------------------结束执行TestRoute 类的 GetVirtualPath 方法返回了:VirtualPathData -- 05:50:04:3630
 - ----------------------------------------------------------------------------------开始执行TestRoute 类的 GetVirtualPath 方法 -- 05:50:04:3630
 - -------------------------------------------------------------------------------------开始执行TestRoute 类的 ProcessConstraint 方法 -- 05:50:04:3640
 - ---------------------------------------------------------------------------------------结束执行TestRouteConstraint 类的 Match 方法返回了:True -- 05:50:04:3640
 - -------------------------------------------------------------------------------------结束执行TestRoute 类的 ProcessConstraint 方法返回了:True -- 05:50:04:3640
 - ----------------------------------------------------------------------------------结束执行TestRoute 类的 GetVirtualPath 方法返回了:VirtualPathData -- 05:50:04:3640
 - ---------------------------------------开始执行TestViewEngine 类的 ReleaseView 方法传入了:TestView -- 05:50:04:3650
 - ----------------------------------开始执行TestActionFilterOnActionAttribute 类的 System.Web.Mvc.IResultFilter.OnResultExecuted 方法 -- 05:50:04:3650
 - --------------------------------开始执行TestActionFilterOnControllerAttribute 类的 System.Web.Mvc.IResultFilter.OnResultExecuted 方法 -- 05:50:04:3650
 - -------------------------------开始执行TestController 类的 OnResultExecuted 方法 -- 05:50:04:3650
 - --------------------------结束执行TestActionInvoker 类的 InvokeActionResultWithFilters 方法返回了:ResultExecutedContext -- 05:50:04:3650
 - ------------------------结束执行TestActionInvoker 类的 InvokeAction 方法返回了:True -- 05:50:04:3650
 - --------------------------开始执行TestTempDataProvider 类的 SaveTempData 方法 -- 05:50:04:3670
 - -------------------开始执行TestControllerFactory 类的 ReleaseController 方法 -- 05:50:04:3670
 - ----------------------开始执行TestController 类的 Dispose 方法 -- 05:50:04:3670
 
推荐.NET配套的通用数据层ORM框架:CYQ.Data 通用数据层框架
