A master page starts with a Master directive that specifies the same information.
<%@ Master Language="C#"
AutoEventWireup="true"
CodeFile="Default.master.cs"
Inherits="SiteTemplate" %>
The ContentPlaceHolder is like any ordinary control.
<%@ Master Language="C#"
AutoEventWireup="true"
CodeFile="Default.master.cs"
Inherits="SiteTemplate" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
><br />
<asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
<i>This is a simple footer.</i>
</form>
</body>
</html>
ASP.NET links your page to the master page with attribute named MasterPageFile
<%@ Page Language="C#"
MasterPageFile="~/Default.master"
AutoEventWireup="true"
CodeFile="SimpleContentPage.aspx.cs"
Inherits="SimpleContentPage"
Title="Untitled Page" %>
path ~/ is to specify the root website folder.
The Page directive has another new attribute Title.
Title attribute overrides the title specified in the master page.
The content page can¡¯t define anything provided in the master page,
including the <head> section,
the root <html> element,
the <body> element, and so on.
The content page supply a Content tag that corresponds to the ContentPlaceHolder in the master page.
<%@ Page Language="C#"
MasterPageFile="~/Default.master"
AutoEventWireup="true"
CodeFile="SimpleContentPage.aspx.cs"
Inherits="SimpleContentPage"
Title="Content Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
<br />
Here's some new content!
<br />
</asp:Content>
ContentPlaceHolderID attribute in the <Content> tag must match the ContentPlaceHolder specified in the master page exactly.
|