問題が 1 つあります。アプリケーションでマスター ページをセットアップしたいと考えています。aspx ページが多すぎるため、すべてのページに移動して asp:content タグを追加したくありません。自分のページを動的に調べて、html/その他の ASP コントロールをコピーし、動的に作成されたコンテンツ テンプレートに追加する方法が必要です。コンテンツ テンプレートを動的に作成する方法を知っています。しかし、aspx ページの html をコピーしてコンテンツ テンプレートに追加できるかどうかはわかりません。
たとえば、aspx ページのコード ビハインドの page_PreInit で、次のコードを追加しています。
base.AddContentTemplate("WebHeaderPH", new CompiledTemplateBuilder(new BuildTemplateMethod(this.getControl)));
getControl は、何でも含むメソッドです (html、テキスト、またはユーザー コントロールをロードする可能性があります)。
このようにして、コンテンツ テンプレートを動的に追加しています。
今私のaspxページの内容は次のコードです。
<span id="someid" runat="server">blah blah...</span>
今私が欲しいのは、このスパン タグを ID で取得し、asp:content の下にラップすることです。または上記の getControl メソッドにある可能性があります。
しかし、このスパンをページに配置すると、次のエラーがスローされ、
コンテンツ コントロールは、コンテンツ ページまたはマスター ページを参照するネストされたマスター ページのトップレベル コントロールである必要があります。
ページにasp:contentテンプレートを配置する必要があります。しかし、これを行うと、contentTemplateを動的に作成したり、contentTemplateを動的に作成しているため、ページ全体を空白のままにしたりする必要はありません。どちらの場合も、すべての aspx ページを編集する必要があります。
aspx ページを編集する必要なく、ページの html を取得してcontentTemplateに追加する方法はありますか?