Eine Masterseite hat im Grunde dieselbe Aufgabe wie eine dynamische Webvorlage,
nämlich die, allen Seiten, die dieser Masterseite angehören,
dasselbe Aussehen und dieselben Elemente zu übertragen, die man auf allen Seiten sichtbar sein sollen.
Die dynamische Webvorlage braucht für ihre Funktion das Programm Expression Web und sie wird ausgeführt,
indem einer gegebenen Seite die dynamische Webvorlage aufgeprägt wird, d.h. alle Inhalte der dynamischen Webvorlage werden in die Webseite übernommen.
Dieser Vorgang geschieht während der Bearbeitung einer Seite mit Expression Web.
html := dwt + html
Verändert man die dynamische Webvorlage, fordert Expression Web dazu auf, auch alle anderen Seiten, die auf dieser Vorlage beruhen, neu zu erstellen,
denn es muss ja der gesamte Kode der Snamischen Webvorlage in jede einzelne HTML-Seite übertragen werden.
Die Masterseite braucht für ihre Funktion aber einen Webserver,
denn bei Masterseiten wird die Seite erst beim Aufruf durch den Benutzer am Server berechnet.
html := master + aspx
Da Expression Web mit einem eigenen Webserver ausgerüstet ist, kann man Masterseiten auch im Rahmen von Expression Web testen
aber man kann die Aspx-Seiten nicht am Desktop mit einem Browser öffnen, so wie das bei den Html-Seiten und den dynamischen Webvorlagen der Fall ist.
Die Komposition der Html-Seite aus Master- + Aspx-Seite erfolgt durch folgendes Konstrukt.
<%@ Master Language="C#" AutoEventWireup="true" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<asp:ContentPlaceHolder ID="Head" runat="server">
</asp:ContentPlaceHolder>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ContentPlaceHolder ID="Content" runat="server">
</asp:ContentPlaceHolder>
</div>
</form>
</body>
</html>
Im Kopf steht Eine leere Aspx-Seite, die auf einer Masterseite beruht, enthält keinerlei Html-Elemente mehr, denn die erbt sie von der Masterseite.
Es gibt jetzt so viele Content-Controls als es dafür PlaceHolder auf der Masterseite gibt.
<%@ Page Title="" Language="C#" MasterPageFile="~/documentation/files/LeereMasterDatei.Master" AutoEventWireup="true" %>
<asp:Content ID="Content1" ContentPlaceHolderID="Head" runat="server">
<!-- Hier steht der Kode, der in den Kopf-Teil der Html-Seite einzufügen ist -->
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="Content" runat="server">
<!-- Hier steht der Kode, der in den Body-Teil der Html-Seite einzufügen ist.
Konkret an jene Stelle, an der der PlaceHolder in der MasterSeite steht. -->
</asp:Content>
In Expression Web wird eine Aspx-Seite, die auf einer Masterseite beruht, erstellt mit:
Datei -> Neu -> Seite -> Allgemein -> Aus Masterseite erstellen