1

プロジェクトファイルに次のファイルがあります。

  1. ユーザーコントロール
  2. コンテンツページ
  3. サイトマスター

イベントのページライフサイクルをチェックしていRenderました。Renderイベントは次の順序で実行されています。

  1. コンテンツページ
  2. マスターページ
  3. ユーザーコントロール

明らかに、それは事前定義されています。

問題は、なぜコンテンツ ページ、マスター ページ、最後にユーザー コントロールなのかということです。

完全な Html をマージしてブラウザに送信する方法を教えてください。最初にマスターページを含めるべきではありませんか?

4

1 に答える 1

2

レンダリングはイベントではありません。クライアントに送信する出力を生成するために呼び出されるメソッドです。
Render は、それ自体とその子をレンダリングします。

順番は Render RenderChildren

ASP.NET Page Life Cycleで明確にわかるように。

コントロール階層では、ページが親です。MasterPage は Page コントロールの子です。ユーザー コントロールを配置した場所に応じて、Page または MasterPage のいずれかの子になります。

カスタム コントロールを作成する場合は、通常、このメソッドをオーバーライドしてコントロールのマークアップを出力します。

各コントロールはHtmlTextWriter親から を受け取り、その出力をこのライターに書き込みます。クライアントが受け取る最終的な出力は、コントロールとそのすべての子によってライターに書き込まれた出力です。

ページはこのプロセスを開始する必要があるため、その Render を最初に呼び出す必要があります。

于 2012-12-24T11:20:45.527 に答える