5

ASP.NETページにユーザーコントロールを登録すると、コントロールがページに読み込まれるかどうか。
<%@ Register Src=".." TagName="tag" TagPrefix="pre" %>
使用しているページで呼び出さなくても?
<pre:tag id='control123' />

コントロールを呼び出さなくてもコードの一部が実行されるため、パフォーマンスプロフィルを実行したときにわかりました。

4

2 に答える 2

7

この場合、ユーザー コントロールはサーバー側のページ オブジェクトに読み込まれます。つまり、ASP.NET アプリのライフサイクル全体で処理されますが、コントロール インスタンスを作成しないため、出力 HTML はレンダリングされません。「タイプ」を使用していますが、「インスタンス」は使用していません。

質問への回答: はい、ロードされますが、レンダリング、データバインドなどは行われません...

2012 年 2 月 7 日編集

Register ディレクティブを取り除きたい場合は、いつでも web.config を使用できます。このScottgu の投稿の指示に従ってください。

于 2012-02-02T11:24:47.467 に答える
1

Register ディレクティブは、プレフィックスとコントロールの間の関連付けを作成するためだけに存在します。コントロールを宣言的にロードする場合にのみ重要です。開発を容易にするためだけに存在します。

コントロールのインスタンスをどこかで宣言しない限り、Page_Load またはプライベート メソッドを呼び出す方法はありません。

さらに、コードのどこにも使用していない場合は、Register ディレクティブを使用しないでください。IMO Register ディレクティブがこの問題を引き起こしているとは思いません。

于 2012-02-02T10:50:05.550 に答える