0

問題が 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に追加する方法はありますか?

4

1 に答える 1

0

恐れ入りますが、手動で段階的に進めていただく必要があります。これは確かに設計ミスですが、すべてを変更するのにそれほど時間はかかりません。残念ながら、私も同じ間違いを犯したので、ページを手動で編集して修正しました。

于 2013-06-27T12:28:41.927 に答える