使用環境
Visual Stdio 2022
.Net Freamework 4.8
今北産業でわかるMasterPage
1ページを親と子に分解したときの親要素。
複数ページでもおんなじ要素を表示したい!ってときに利用。
ページのイベント処理順序が少しだけ面倒かな。
どんなところで使うの?MasterPage
単一のページを作るとしたら、Master.Pageは使わないほうがいいです。
MasterPageを使用するシーンとしては、別ページだけど同様の要素を出力したいときが考えられます。
例えば個人サイトであったら、自身のホームページの名前はずっと表示し続けたいですよね。
単純に考えると、すべてに自身のホームページの名称を書くことは改修する際に改修忘れを生む要因となります。
10ページに自身のホームページの名前を書いた場合、ホームページの名前を変更する際には10ページすべてを変更しなければいけません。
そこで利用するのが、MasterPageです。
どうやって作るの?MasterPage
Visual Stduoのプロジェクトから[新しい項目の追加]->[Web Formsのマスターページ]を選択します。
たったこれだけなんですよね。
どこがどうなの?MasterPage
先ほどの画像を少しだけ拡大しました。
全行を解説すると、行数が足りなく既存のHTMLの技術もあるので省略。
ここからMasterPageについて詳細にみていきましょう。
1行目に記載されている要素はMasterPege自体の宣言部分です。
・言語(Language)はC#で記載する。
・AutoEventWireupはページの初期化や更新時に実行されます。
・CodeBihindは実行するプログラムファイルのパスを記載する。
・InheritsはCodeBihindを利用する際のPageクラスの派生クラスを記載する。
引用
https://atmarkit.itmedia.co.jp/ait/articles/0207/23/news001.html
9,10,15,16行目に記載されているのが、子ページで記載するスペースを確保しています。
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server" />
この記載はMasterPageに一つだけ存在しなければいけないということはなく、複数記載することができます。
実際に使ってみたよ!MasterPage
Visual Stduoのプロジェクトから[新しい項目の追加]->[マスターページを含むWebフォーム]を選択します。
すると、以下のウィンドウが続けて表示されます。
ここで適用するMasterPageを選択し、「OK」を押下します。
以下のファイルが作成できました。これで先ほど作成したMasterPegeを親とした子ページが作成されました。
あとは、
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
(好きな要素を記載)
</asp:Content>
asp:Contentタグ内に子ページで表示したい内容を記載するだけです。
今回はここまで。