开发者

Execution flow in MVC

I am trying to learn MVC in detail, and I am wondering what's the exact functional flow internally, in the sense of which functions (important functions) are called and what they do when the application starts and what functions are 开发者_StackOverflow中文版called apart from the controller actions that we write in our application as we proceed.


Here are the detailed steps:

  1. Request comes into ASP.NET
  2. ASP.NET Routing finds the route match by calling RouteCollection.GetRouteData
  3. This in turn calls RouteBase.GetRouteData on each route until it finds a match
  4. The IRouteHandler for the matching route has its GetHttpHandler method called
  5. The MvcHandler runs (ProcessRequest is called)
  6. The MVC controller factory locates and creates the controller in CreateController
  7. The ControllerActionInvoker determines which action to run in InvokeAction
  8. The AuthorizationFilter stage executes (this includes the authorization method on the controller itself)
  9. The ActionExecuting stage executes
  10. The requested action method is executed
  11. The ActionExecuted stage executes
  12. If there is a result object then the ResultExecuting stage executes
  13. If the result wasn't cancelled then the ActionResult's ExecuteResult method is executed
  14. The ResultExecuted stage executes
  15. If an error occured then the Exception stage executes

I would also like to refer you to the MVC Snake Diagram that I use in many presentations on ASP.NET MVC. Here's the full image:

Execution flow in MVC

The blog post I linked to describes some of the concepts used in ASP.NET MVC regarding how data flows through the application.


Check out Redgates's free "The ASP.NET MVC Request Handling Pipeline" poster for execution flow

and Steven Sanderson's MCV book for details.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜