以前、複数コントロールの単一ページ タイプのアプリケーションを動的にロードする開発を行っていたとき、viewstate に頭を悩ませていました。これは、後ではなく、 OnInitステージでコントロールを追加する必要があるためです。コントロール イベント (たとえば、ドロップダウン リストの selectedIndexChanged) を処理していたので、イベント ハンドラー ステージでそれらをロードしていました。子コントロール ページのサイクル キャッチアップについては知っていますが、うまくいかない場合があることに気付きました。
私は再びそのようなアプリケーションの開発を任されました。今回は別のアプローチを取ることにしました。値に基づいて動的コントロールをロードする選択コントロールについては、OnInit ステージで (Request.Form からの) ポストバック応答値をチェックし、すぐにコントロールをロードします。これは OnPreRender の直前であり、遅すぎるため、イベント ハンドラー ステージから動的コントロールをロードしません。
要約:
ページ サイクルの後半 (OnInit など) の早い段階で Request.Form コレクションからコントロールの値をチェックし、アクションを実行することの落とし穴は何ですか? ページ サイクルの後半で実際のコントロールからその値をチェックするのではなく?