私の難解なタイトルが難解すぎないことを願っていますが、実際に何をしたいのかを説明しようと思います。
子ページ「B」と「C」を持つマスターページ「A」があります。これは、ASP.NET の標準マスター ページ モデルで問題なく実装されます。
私のサイトには 'T1' と 'T2' の 2 つのテーマがあります。T1 は自社で、T2 はパートナーです。
使用しているテーマに応じて、ページ 'B' と 'C' に特定のものを表示したいと考えています。たとえば、テーマ「T2」のパートナーに固有のページ「B」に追加のボタンまたはグラフィックを挿入したい場合があります。このコンテンツは、ページ自体に応じて、ページ上の任意のポイントになります。この機能を使用していないパートナーもいます。
問題は、これを可能な限り宣言的に行い、ページがテーマについて持っている知識を最小限に抑えたいことです。
ここで、「リバース」マスター ページの概念が登場します。「テーマ」固有のコンテンツを挿入できる子ページの領域を定義したいと考えています。(「テーマ」と言っているのは、それが ASP.NET が使用するものであり、おそらくコンテンツを関連付けるものだからです)。
だからあなたは不思議に思うかもしれません:
- これにマスター ページを使用して、追加のコンテンツ セクションを追加できないのはなぜですか? その理由は、そのページに固有の場所のページ上のどこにでもコンテンツが表示される可能性があるためです。
- 「ネストされた」マスター ページを使用できないのはなぜですか? 本質的に同じ理由です。
考えられる解決策:
そこに挿入されるコンテンツの種類を表すテキストキーを持つ、ある種のユーザーコントロールを作成することについて疑問に思っています。ユーザーコントロールは、おそらく関連する追加のユーザーコントロールを動的に作成することにより、「テーマ」ごとに何を表示するかを知る必要があります。
これは少し不器用に思えるので、同様の状況に対して他の人がどのような解決策を作成したのか疑問に思っています。