Controller.OnActionExecuted
前または後に呼び出されActionResult.Execute
ますか?
イベントが発生する順序のどこかにタイムラインはありますか? google-fu だけでは何も見つかりません。
Controller.OnActionExecuted
前または後に呼び出されActionResult.Execute
ますか?
イベントが発生する順序のどこかにタイムラインはありますか? google-fu だけでは何も見つかりません。
Controller.OnActionExecutedが最初に呼び出されます。
MSDNのこの投稿を参照してください。MVCのコントローラーパイプラインについて説明しています。
- アプリケーションの最初のリクエストを受け取る
- ルーティングを実行する
- MVCリクエストハンドラーを作成する
- コントローラを作成する
- コントローラを実行する
- アクションを呼び出す
- 結果を実行する
アクション フィルターには、コントローラー アクションの実行前後に実行されるロジックが含まれます。たとえば、アクション フィルターを使用して、コントローラー アクションが返すビュー データを変更できます。
結果フィルターには、ビューの結果が実行される前後に実行されるロジックが含まれます。たとえば、ビューがブラウザーにレンダリングされる直前に、ビューの結果を変更したい場合があります。
画像提供: - http://www.dotnetinterviewquestions.in/article_explain-mvc-application-life-cycle_210.html
記事の詳細:- https://www.codeproject.com/Articles/556995/ASP-NET-MVC-interview-questions-with-answers
Web アプリケーションには、最初に要求を理解し、要求のタイプに応じて適切な応答を送信する 2 つの主要な実行ステップがあります。MVC アプリケーションのライフ サイクルに違いはなく、最初にリクエスト オブジェクトを作成し、次にブラウザにレスポンスを送信する 2 つの主要なフェーズがあります。
リクエスト オブジェクトの作成: - リクエスト オブジェクトの作成には、4 つの主要な手順があります。以下、同内容の詳細説明です。
ステップ 1 フィル ルート: - MVC 要求はルート テーブルにマップされ、どのコントローラーとアクションを呼び出すかを指定します。したがって、リクエストが最初のリクエストである場合、最初にルート テーブルにルート コレクションを入力します。このルート テーブルへの入力は、global.asax ファイルで行われます。
ステップ 2 ルートをフェッチします。 - 送信された URL に応じて、「UrlRoutingModule」はルート テーブルを検索し、呼び出すコントローラーとアクションの詳細を含む「RouteData」オブジェクトを作成します。
ステップ 3 要求コンテキストの作成: - 「RouteData」オブジェクトを使用して、「RequestContext」オブジェクトを作成します。
ステップ 4 コントローラ インスタンスの作成: - このリクエスト オブジェクトは、「MvcHandler」インスタンスに送信され、コントローラ クラス インスタンスが作成されます。コントローラ クラス オブジェクトが作成されると、コントローラ クラスの「Execute」メソッドが呼び出されます。
応答オブジェクトの作成: - このフェーズには、アクションを実行し、最後に結果として応答をビューに送信する 2 つのステップがあります。