クリックして評価とフィードバックをお寄せください
MSDN
MSDN ライブラリ
.NET 開発
.NET Framework 3.5
.NET Framework 3.5
System.Web.UI 名前空間
MasterPage クラス

  低帯域幅での表示をオンにする
このページは次のバージョンについて記述しています。
Microsoft Visual Studio 2008/.NET Framework 3.5

その他のバージョンについては、以下の情報を参照してください。
.NET Framework クラス ライブラリ
MasterPage クラス

更新 : 2007 年 11 月

Content コントロールおよびそれぞれのコントロールのみで構成されるページのテンプレートおよびマージ コンテナとして機能します。

名前空間 :  System.Web.UI
アセンブリ :  System.Web (System.Web.dll 内)

Visual Basic (宣言)
<AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level := AspNetHostingPermissionLevel.Minimal)> _
<AspNetHostingPermissionAttribute(SecurityAction.InheritanceDemand, Level := AspNetHostingPermissionLevel.Minimal)> _
Public Class MasterPage _
    Inherits UserControl
Visual Basic (使用法)
Dim instance As MasterPage
C#
[AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermissionAttribute(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
public class MasterPage : UserControl
Visual C++
[AspNetHostingPermissionAttribute(SecurityAction::LinkDemand, Level = AspNetHostingPermissionLevel::Minimal)]
[AspNetHostingPermissionAttribute(SecurityAction::InheritanceDemand, Level = AspNetHostingPermissionLevel::Minimal)]
public ref class MasterPage : public UserControl
J#
/** @attribute AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal) */
/** @attribute AspNetHostingPermissionAttribute(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal) */
public class MasterPage extends UserControl
JScript
public class MasterPage extends UserControl
ASP.NET
<asp:MasterPage />

マスタ ページは、ASP.NET Web アプリケーションのコンテンツ ページのテンプレート コンテナおよびマージ ページとして機能します。マスタ ページを使用すると、一連のコンテンツ ページ全体で構造および内容を簡単に共有できます。コンテンツ プレースホルダを使用して、コンテンツ ページの内容で置き換えるマスタ ページのセクションを定義します。

マスタ ページおよび関連するコンテンツ ページを使用する場合、必要な XHTML 文書タグ (htmlheadbody など) はマスタ ページのみに追加し、他の .aspx ファイル (ASP.NET ページ) をスタンドアロンの Web ページとして作成しません。コンテンツ ページには、マスタ ページのプレースホルダに挿入する内容を定義します。

実行時に HTTP 要求が行われると、マスタ ページとコンテンツ ページが結合され、コンテンツ ページと同じ名前の単一のクラスが生成されます。結果として得られたコンパイル済みのマージされたクラスは、Page クラスから派生します。

マスタ ページには、直接的なマークアップやサーバー コントロール、およびコンテナ コントロールを定義できます。マスタ ページ内で ContentPlaceHolder コントロールの外側にある各要素は、マスタ ページとコンテンツ ページをマージした結果生成されるすべてのページに表示されます。

マスタ ページに関連する各コンテンツ ページは、@ Page ディレクティブの MasterPageFile 属性でマスタ ページを参照する必要があります。コンテンツ ページには、@ Page ディレクティブと 1 つ以上の Content コントロールのみを定義できます。ページ テキスト、マークアップ、およびサーバー コントロールはすべて、Content コントロール内に配置する必要があります。Content コントロールが関連付けられているマスタ ページの ContentPlaceHolder コントロールを識別するには、Content コントロールの ContentPlaceHolderID プロパティを設定します。

実行時に、要求されたページの各 Content コントロールの動的な内容がマスタ ページにマージされ、関連する ContentPlaceHolder コントロールの正確な場所に配置されます。マスタ ページ内のその他のマークアップおよびコントロールは影響を受けません。イベント ハンドラは、マスタ クラスにもコンテンツ ページにも定義できます。詳細については、「ASP.NET のマスター ページとコンテンツ ページのイベント」を参照してください。

MasterPage クラスは、.master 拡張子を持つファイルと関連付けられています。これらのファイルは、実行時に MasterPage オブジェクトとしてコンパイルされ、サーバー メモリにキャッシュされます。

コンテンツ ページでマスタ ページを利用できるようにするには、Page 基本クラスの Master プロパティを使用します。Master プロパティはマスタ ページのインスタンスを返しますが、このインスタンスは MasterPage 基本クラスとして型指定されています。マスタ ページのコントロール、プロパティ、および関数にアクセスするために、Master プロパティを MasterPage にキャストできます。マスタ ページのクラス名は、@ Master ディレクティブの ClassName 属性を使用して定義します。

メモ :

拡張子が .master のファイルはブラウザには提供されません。

マスタ ページで有効なディレクティブは UserControl オブジェクトで使用できるディレクティブと同じです。次の属性を設定できます。

  • AutoEventWireup

  • ClassName

  • CodeFile

  • CompilerMode

  • CompilerOptions

  • Debug

  • Description

  • EnableTheming

  • EnableViewState

  • Explicit

  • Inherits

  • Language

  • LinePragmas

  • MasterPageFile

  • Src

  • Strict

  • WarningLevel

マスタ ページのディレクティブは、個別のコンテンツ ページのディレクティブをオーバーライドしません。

通常、マスタ ページは宣言によって作成されます。マスタ ページをプログラムによって作成する場合は、MasterPage クラスから直接派生させます。MasterPage クラスを拡張することに加えて、.master ファイルを作成して、ソース ファイルで呼び出したクラスに関連付けられているユーザー インターフェイス (UI) を視覚的に表示できるようにする必要があります。

メモ :

最初に独自のクラスを作成することによりマスタ ページを作成する場合は、そのページで使用されるクラスに必要なすべての名前空間を指定する必要があります。

マスタ ページの詳細については、「ASP.NET マスター ページの概要」を参照してください。

このセクションには、4 つのコード例が含まれています。

  • 最初のコード例では、宣言によってマスタ ページを作成する方法を示します。

  • 2 番目のコード例では、最初のコード例で作成されたマスタ ページに関連付けられたコンテンツ ページを示します。

  • 3 番目のコード例では、マスタ ページにプロパティを追加する方法を示します。

  • 4 番目のコード例では、コンテンツ ページを使用してマスタ ページのパブリック プロパティにアクセスする方法を示します。

宣言によってマスタ ページを作成し、コンテンツ ページを使用してマスタ ページに内容を追加する方法を次の例に示します。最初の Web ページは、MasterPageSample_1.master という名前の .master ページです。

C#
<%@ Master Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html  >
<head runat="server">
    <title>MasterPage Example</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:contentplaceholder id="ContentPlaceHolder1" runat="server" />
    </div>
    </form>
</body>
</html>
Visual Basic
<%@ Master Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html  >
<head runat="server">
    <title>MasterPage Example</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:contentplaceholder id="ContentPlaceHolder1" runat="server" />
    </div>
    </form>
</body>
</html>

MasterPageSample_1.master に関連付けられているコンテンツ ページを表す例を次に示します。この例には、Content コントロールが含まれており、ContentPlaceHolderID プロパティを使用して、コンテンツが関連付けられている ContentPlaceHolder コントロールを指定しています。

C#
<%@ Page Language="C#" MasterPageFile="~/MasterPageSample_1cs.master" Title="Content Page"%>

<asp:content 
    runat="server"
    contentplaceholderid="ContentPlaceHolder1" >Hello, Master Pages!</asp:content>
Visual Basic
<%@ Page Language="VB" MasterPageFile="~/MasterPageSample_1vb.master" Title="Content Page"%>

<asp:content 
    runat="server"
    contentplaceholderid="ContentPlaceHolder1" >Hello, Master Pages!</asp:content>

次の例では、マスタ ページにプロパティを追加する方法を示します。ClassName 属性を使用して、マスタ ページの名前を指定しています。

C#
<%@ Master Language="C#" ClassName="MasterExample" %>

<script runat="server">
        public string SiteName
        {
            get { return "My Site Name"; }
        }
</script>

<html  >
<head runat="server">
    <title>MasterPage Example</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:contentplaceholder id="ContentPlaceHolder1" runat="server">
        </asp:contentplaceholder>
    </div>
    </form>
</body>
</html>
Visual Basic
<%@ Master Language="VB" ClassName="MasterExample" %>

<script runat="server">
  Public ReadOnly Property SiteName() As String
    Get
      Return "My Site Name"
    End Get
  End Property

</script>

<html  >
<head runat="server">
    <title>MasterPage Example</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:contentplaceholder id="ContentPlaceHolder1" runat="server">
        </asp:contentplaceholder>
    </div>
    </form>
</body>
</html>

コンテンツ ページを使用して、前のコード例のマスタ ページの SiteName パブリック プロパティにアクセスする方法を次の例に示します。

C#
<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" Title="MasterPage Example" %>

<script runat="server">
  protected void Page_Load(object sender, EventArgs e)
  {
    MasterExample m = (MasterExample)Page.Master;
    mylabel.Text = m.SiteName;
  }
</script>

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
    Hello, Master Pages!
    <asp:Label runat="server" Text="Label" ID="mylabel"></asp:Label>
</asp:Content>
Visual Basic
<%@ Page Language="VB" MasterPageFile="~/MasterPage.master" Title="MasterPage Example" %>

<script runat="server">

  Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
    Dim m As MasterExample = CType(Page.Master, MasterPage)
    mylabel.Text = m.SiteName
  End Sub
</script>

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
    Hello, Master Pages!
    <asp:Label runat="server" Text="Label" ID="mylabel"></asp:Label>
</asp:Content>
System..::.Object
  System.Web.UI..::.Control
    System.Web.UI..::.TemplateControl
      System.Web.UI..::.UserControl
        System.Web.UI..::.MasterPage
この型のすべてのパブリック static (Visual Basic では Shared) メンバは、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework および .NET Compact Framework では、各プラットフォームのすべてのバージョンはサポートしていません。サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。

.NET Framework

サポート対象 : 3.5、3.0、2.0
コミュニティ コンテンツ   コミュニティ コンテンツとは
新しいコンテンツの追加 RSS  注釈
Processing
© 2009 Microsoft Corporation. All rights reserved. 使用条件  |  商標  |  プライバシー
Page view tracker