(0) exportieren Drucken
Alle erweitern

MasterPage-Klasse

Aktualisiert: November 2007

Fungiert als Vorlage und als Container zum Zusammenführen für Seiten, die nur aus Content-Steuerelementen bestehen, und für ihre jeweiligen untergeordneten Steuerelemente.

Namespace:  System.Web.UI
Assembly:  System.Web (in System.Web.dll)

[AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermissionAttribute(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
public class MasterPage : UserControl
/** @attribute AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal) */
/** @attribute AspNetHostingPermissionAttribute(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal) */
public class MasterPage extends UserControl
public class MasterPage extends UserControl
<asp:MasterPage />

Eine Masterseite fungiert als Vorlagencontainer und als Zusammenführungsseite für die Inhaltsseiten einer ASP.NET-Webanwendung. Mithilfe von Masterseiten können Struktur und Inhalt über eine Reihe von Inhaltsseiten hinweg gemeinsam verwendet werden. Mithilfe von Inhaltsplatzhaltern können Sie die Abschnitte der Masterseite definieren, die durch Inhalt aus den Inhaltsseiten ersetzt werden sollen.

Wenn Sie eine Masterseite und die entsprechenden Inhaltsseiten verwenden, fügen Sie nur der Masterseite die erforderlichen XHTML-Dokumenttags (z. B. html, head und body) hinzu und erstellen keine weiteren ASPX-Dateien (ASP.NET-Seiten) als eigenständige Webseiten. Die Inhaltsseiten definieren den Inhalt, der in die Platzhalter auf der Masterseite eingefügt werden soll.

Wenn zur Laufzeit eine HTTP-Anforderung an eine Seite gesendet wird, werden die Masterseite und die Inhaltsseiten in einer einzelnen Klasse unter dem Namen der Inhaltsseiten kombiniert. Die hierdurch erhaltene kompilierte, zusammengeführte Klasse ist von der Page-Klasse abgeleitet.

Eine Masterseite kann direktes Markup und Serversteuerelemente sowie Containersteuerelemente enthalten. Jedes Element, das auf der Masterseite außerhalb eines ContentPlaceHolder-Steuerelements platziert ist, wird infolge des Zusammenführens von Masterseite und Inhaltsseiten auf allen Seiten gerendert.

Jede Inhaltsseite, die sich auf die Masterseite bezieht, muss in einem MasterPageFile-Attribut ihrer @ Page-Direktive auf die Masterseite verweisen. Inhaltsseiten können nur eine @ Page-Direktive sowie ein oder mehrere Content-Steuerelemente enthalten. Der gesamte Seitentext, das Markup und alle Serversteuerelemente müssen sich in Content-Steuerelementen befinden. Sie geben das ContentPlaceHolder-Steuerelement einer Masterseite an, der ein Content-Steuerelement zugeordnet ist, indem Sie die ContentPlaceHolderID-Eigenschaft des Content-Steuerelements festlegen.

Zur Laufzeit wird der dynamische Inhalt jedes Content-Steuerelements auf der angeforderten Seite mit der Masterseite an der exakten Position des entsprechenden ContentPlaceHolder-Steuerelements zusammengeführt. Das gesamte sonstige Markup und alle anderen Steuerelemente auf der Masterseite sind davon nicht betroffen. Ereignishandler können in der Masterklasse und auf der Inhaltsseite definiert sein. Weitere Informationen finden Sie unter Ereignisse in ASP.NET-Master- und Inhaltsseiten.

Die MasterPage-Klasse wird Dateien mit der Erweiterung .master zugeordnet. Diese Dateien werden zur Laufzeit als MasterPage-Objekte kompiliert und im Serverspeicher zwischengespeichert.

Die Masterseite wird mithilfe der Master-Eigenschaft der Page-Basisklasse für die Inhaltsseite verfügbar gemacht. Die Master-Eigenschaft gibt eine Instanz der Masterseite zurück. Ihr Typ wird jedoch als MasterPage-Basisklasse angegeben. Zum Zugreifen auf Steuerelemente, Eigenschaften und Funktionen der Masterseite kann die Master-Eigenschaft in ein MasterPage-Objekt umgewandelt werden. Der Klassenname der Masterseite wird mit dem ClassName-Attribut der @ Master-Direktive definiert.

tf5e2ex3.alert_note(de-de,VS.90).gifHinweis:

Dateien mit der Erweiterung .master werden nicht in einem Browser ausgegeben.

Die auf der Masterseite gültigen Direktiven sind identisch mit den Direktiven, die für ein UserControl-Objekt verfügbar sind. Sie können die folgenden Attribute enthalten:

  • AutoEventWireup

  • ClassName

  • CodeFile

  • CompilerMode

  • CompilerOptions

  • Debug

  • Description

  • EnableTheming

  • EnableViewState

  • Explicit

  • Inherits

  • Language

  • LinePragmas

  • MasterPageFile

  • Src

  • Strict

  • WarningLevel

Masterseitendirektiven überschreiben nicht die Direktiven auf einzelnen Inhaltsseiten.

Masterseiten werden meist deklarativ erstellt. Wenn Sie eine Masterseite programmgesteuert erstellen möchten, leiten Sie direkt von der MasterPage-Klasse ab. Neben dem Erweitern der MasterPage-Klasse müssen Sie die MASTER-Datei erstellen, um die Benutzeroberfläche anzuzeigen, die den in der Quelldatei aufgerufenen Klassen zugeordnet ist.

tf5e2ex3.alert_note(de-de,VS.90).gifHinweis:

Wenn Sie eine Masterseite erstellen, indem Sie zuerst eine eigene Klasse erstellen, müssen Sie alle Namespaces einbeziehen, die für die von dieser Seite verwendeten Klassen erforderlich sind.

Weitere Informationen zu Masterseiten finden Sie unter Übersicht über ASP.NET-Masterseiten.

TopicLocation
Gewusst wie: Erstellen von Inhaltsseiten für eine ASP.NET-Masterseite (Visual Studio)Erstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Erstellen von Inhaltsseiten für eine ASP.NET-MasterseiteErstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Verweisen auf Inhalte der ASP.NET-MasterseiteErstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Verweisen auf Inhalte der ASP.NET-MasterseiteErstellen von ASP.NET-Webanwendungen
Gewusst wie: Verweisen auf Inhalte der ASP.NET-MasterseiteErstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Erstellen von Inhaltsseiten für eine ASP.NET-MasterseiteErstellen von ASP.NET-Webanwendungen in Visual Studio

Dieser Abschnitt enthält vier Codebeispiele:

  • Im ersten Codebeispiel wird veranschaulicht, wie eine Masterseite deklarativ erstellt wird.

  • Im zweiten Codebeispiel wird die Inhaltsseite dargestellt, die der im ersten Codebeispiel erstellten Masterseite zugeordnet ist.

  • Im dritten Codebeispiel wird veranschaulicht, wie einer Masterseite eine Eigenschaft hinzugefügt wird.

  • Im vierten Codebeispiel wird veranschaulicht, wie mithilfe einer Inhaltsseite auf eine öffentliche Eigenschaft auf der Masterseite zugegriffen wird.

Im folgenden Beispiel wird veranschaulicht, wie eine Masterseite deklarativ erstellt wird und dieser mithilfe einer Inhaltsseite Inhalt hinzugefügt wird. Die erste Webseite ist die MASTER-Seite mit dem Namen MasterPageSample_1.master.

<%@ Master Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<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>

Im folgenden Beispiel wird die Inhaltsseite dargestellt, die MasterPageSample_1.master zugeordnet ist. Sie enthält ein Content-Steuerelement und gibt mit der ContentPlaceHolderID-Eigenschaft das ContentPlaceHolder-Steuerelement an, dem der Inhalt zugeordnet ist.

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

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

Im folgenden Beispiel wird veranschaulicht, wie einer Masterseite eine Eigenschaft hinzugefügt wird. Mithilfe des ClassName-Attributs wird die Masterseite benannt.

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

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

<html xmlns="http://www.w3.org/1999/xhtml" >
<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>

Im folgenden Beispiel wird dargestellt, wie mithilfe einer Inhaltsseite auf die öffentliche SiteName-Eigenschaft auf der Masterseite im vorherigen Codebeispiel zugegriffen wird.

<%@ 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>

Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

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 und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

.NET Framework

Unterstützt in: 3.5, 3.0, 2.0

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft