1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MasterPage is 何?

Posted at

使用環境

Visual Stdio 2022
.Net Freamework 4.8

今北産業でわかるMasterPage

1ページを親と子に分解したときの親要素。
複数ページでもおんなじ要素を表示したい!ってときに利用。
ページのイベント処理順序が少しだけ面倒かな。

どんなところで使うの?MasterPage

単一のページを作るとしたら、Master.Pageは使わないほうがいいです。
MasterPageを使用するシーンとしては、別ページだけど同様の要素を出力したいときが考えられます。
例えば個人サイトであったら、自身のホームページの名前はずっと表示し続けたいですよね。
スクリーンショット 2025-01-25 151424.png
単純に考えると、すべてに自身のホームページの名称を書くことは改修する際に改修忘れを生む要因となります。
10ページに自身のホームページの名前を書いた場合、ホームページの名前を変更する際には10ページすべてを変更しなければいけません。
そこで利用するのが、MasterPageです。

どうやって作るの?MasterPage

Visual Stduoのプロジェクトから[新しい項目の追加]->[Web Formsのマスターページ]を選択します。
image.png

すると、このようにMasterPageが作成されます。
image.png

たったこれだけなんですよね。

どこがどうなの?MasterPage

先ほどの画像を少しだけ拡大しました。
全行を解説すると、行数が足りなく既存のHTMLの技術もあるので省略。
image.png
ここから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行目に記載されているのが、子ページで記載するスペースを確保しています。

WebSite.Master
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server" />

この記載はMasterPageに一つだけ存在しなければいけないということはなく、複数記載することができます。

実際に使ってみたよ!MasterPage

Visual Stduoのプロジェクトから[新しい項目の追加]->[マスターページを含むWebフォーム]を選択します。
image.png
すると、以下のウィンドウが続けて表示されます。
image.png
ここで適用するMasterPageを選択し、「OK」を押下します。

以下のファイルが作成できました。これで先ほど作成したMasterPegeを親とした子ページが作成されました。
image.png

あとは、

WebForm.aspx
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
(好きな要素を記載)
</asp:Content>

asp:Contentタグ内に子ページで表示したい内容を記載するだけです。

今回はここまで。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?