入れ子にしたマスタページの表示サポート
VS 2005で登場したマスタページは、適用したページに一貫したレイアウトを提供するので、重複する部分の作成の手間や時間が省けることもあり、ASP.NET 2.0の普及を促した機能の1つであると言えます。しかし、VS 2005上ではマスタページを入れ子にした場合のフォームデザイナ画面がサポートされていませんでした(表示されませんでした)。HTMLデザイナによる構築は行えましたが、実際にどのように構築されているのかがフォームデザイナで確認できなかったため、作業が煩雑で開発効率も良いとは言えませんでした。
VS 2008では、入れ子にしたマスタページのフォームデザイナもサポートされたので、よりマスタページが利用しやすくなっています。例えば親マスタページに会社概要を、子マスタページに部署を表示させるような社内Webフォームなどで活用できます。これはVS 2008の新機能であり、.NET Framework 2.0~3.5までのどのバージョンでも利用できます(図26)。
サンプルでは、入れ子のマスタページを利用したWebページを次のように構成しています(ContentPlaceHolderコントロールを2つ利用しているので若干複雑です)。
- 大まかな部分を作成した親マスタページ(背景色、水色と薄紫)から中央左側と右側2つのContentPlaceHolderコントロールを配置
- 子マスタページ(背景色、黄緑色)はそれぞれのContentコントロール内にまた2つのContentPlaceHolderコントロールを配置
- 子マスタページを適用したWebページ(背景色クリーム色)の作成。
まず、親マスタページを作成します。この親ページに関しては今までと同じようにすべてに共通する部分を記述します。VS 2008では、マスタページとContentPlaceHolderコントロールは図27のように表示されます。
続いて入れ子にするマスタページの作成ですが、これはマスタページを使ってWebフォームを作成する時と同じように、[新しい項目の追加]の[マスタ ページを選択する]にチェックを付けて追加をクリックします(図28)。
追加をクリックすると、親マスタページを利用したマスタページのWebデザイナが表示されます。この時VS 2005のマスタページを利用したWebフォームの作成と同じように、入れ子のマスタページをフォームデザイナ上で作成することができます(図29)。
入れ子のマスタページを作成する中で、Contentコントロール内にContentPlaceHolderコントロールを埋め込む必要があります(図30)。
入れ子のマスタページの作成後に[新しい項目の追加]から[Web フォーム]を選択して、[マスタ ページを選択する]を選択し、[マスタ ページを選択してください]ダイアログから入れ子のマスタページを選択して[OK]をクリックします(図31)。
以上の手順で図26のように入れ子にしたマスタページを利用したWebフォームを作成することができます。






