15

私はMVCを詳細に学習しようとしていますが、内部で正確な機能フローとは何か、つまり、どの関数(重要な関数)が呼び出され、アプリケーションの起動時にどのような機能が実行され、コントローラーのアクションとは別にどの関数が呼び出されるのか疑問に思っています。先に進むにつれて、アプリケーションに書き込みます。

4

2 に答える 2

22

詳細な手順は次のとおりです。

  1. リクエストが ASP.NET に入る
  2. ASP.NET ルーティングは、RouteCollection.GetRouteDataを呼び出してルートの一致を見つけます。
  3. これは、一致が見つかるまで、各ルートでRouteBase.GetRouteDataを呼び出します。
  4. 一致するルートの IRouteHandler には、GetHttpHandlerメソッドが呼び出されています。
  5. MvcHandler が実行されます ( ProcessRequestが呼び出されます)
  6. MVC コントローラー ファクトリは、CreateControllerでコントローラーを見つけて作成します。
  7. ControllerActionInvoker は、InvokeActionで実行するアクションを決定します
  8. AuthorizationFilterステージが実行されます (これには、コントローラー自体の認証メソッドが含まれます)
  9. ActionExecutingステージが実行されます
  10. 要求されたアクション メソッドが実行されます
  11. ActionExecuted ステージが実行されます
  12. 結果オブジェクトがある場合、ResultExecutingステージが実行されます
  13. 結果がキャンセルされなかった場合、ActionResult のExecuteResultメソッドが実行されます。
  14. ResultExecuted ステージが実行されます
  15. エラーが発生した場合、例外ステージが実行されます

また、ASP.NET MVC に関する多くのプレゼンテーションで使用しているMVC スネーク ダイアグラムも参照してください。完全な画像は次のとおりです。代替テキスト

私がリンクしたブログ投稿では、ASP.NET MVC で使用される、アプリケーション内のデータの流れに関するいくつかの概念について説明しています。

于 2009-12-30T21:13:39.017 に答える
7

実行フローについては、 Redgates の無料の「The ASP.NET MVC Request Handling Pipeline」ポスターをご覧ください。

詳細については、Steven Sanderson の MCV ブックを参照してください。

于 2009-12-30T21:22:50.713 に答える