首先,创建一个母版页(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>© 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