ASP.NET WebForms 中的母版页(Master Page)是一种可以定义站点共享布局和结构的特殊页面。母版页允许您创建一个一致的外观和风格,以便在整个网站中共享。以下是一个简单的例子,演示如何使用母版页。

首先,创建一个母版页(Site.master):
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site.master.cs" Inherits="YourNamespace.Site" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>My WebSite</title>
    <asp:ContentPlaceHolder ID="head" runat="server">
    </asp:ContentPlaceHolder>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <div id="header">
                <h1>My WebSite</h1>
                <asp:ContentPlaceHolder ID="headerContent" runat="server">
                </asp:ContentPlaceHolder>
            </div>
            <div id="menu">
                <ul>
                    <li><a href="Default.aspx">Home</a></li>
                    <li><a href="About.aspx">About</a></li>
                    <li><a href="Contact.aspx">Contact</a></li>
                </ul>
            </div>
            <div id="mainContent">
                <asp:ContentPlaceHolder ID="mainContent" runat="server">
                </asp:ContentPlaceHolder>
            </div>
            <div id="footer">
                <asp:ContentPlaceHolder ID="footerContent" runat="server">
                    <p>&copy; 2023 My WebSite. All rights reserved.</p>
                </asp:ContentPlaceHolder>
            </div>
        </div>
    </form>
</body>
</html>

在这个母版页中,使用了 ContentPlaceHolder 控件来定义可替换的内容区域。主要的内容区域被命名为 "mainContent",头部和页脚也有相应的内容区域。这样,每个页面可以根据需要填充这些内容区域。

然后,在页面中使用母版页,例如 Default.aspx:
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="YourNamespace._Default" %>

<asp:Content ID="Content1" ContentPlaceHolderID="mainContent" runat="server">
    <h2>Welcome to My WebSite</h2>
    <p>This is the home page content.</p>
</asp:Content>

通过将 MasterPageFile 属性设置为母版页的路径,页面与母版页建立了关联。然后,通过在 Content 控件中填充内容,您可以定制每个页面的特定内容,而母版页的结构和样式保持一致。

这样,您就可以轻松创建具有一致外观的 WebForms 网站,并且在需要更改布局时只需修改母版页即可。


转载请注明出处:http://www.pingtaimeng.com/article/detail/14733/ASP.NET