ASP.NET 母版页(Master Page)是一种用于创建共享布局和结构的技术,允许你定义网站中的共同外观并在多个页面之间共享相同的元素。母版页通常包含站点的整体布局、导航结构、页眉、页脚等,而内容页则包含特定于页面的内容。

以下是关于 ASP.NET 母版页的基本信息:

1. 创建母版页: 可以使用 .master 扩展名创建 ASP.NET 母版页。在 Visual Studio 中,你可以在解决方案中添加新项并选择 "Web 母版页"。
   <%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site.master.cs" Inherits="YourNamespace.Site" %>

   <!DOCTYPE html>
   <html lang="en">
   <head runat="server">
       <meta charset="utf-8" />
       <title>Your Site</title>
       <asp:ContentPlaceHolder ID="head" runat="server"></asp:ContentPlaceHolder>
   </head>
   <body>
       <form runat="server">
           <div>
               <header>
                   <!-- 页眉内容 -->
                   <h1>Your Site</h1>
               </header>
               <nav>
                   <!-- 导航菜单 -->
                   <ul>
                       <li><a href="Default.aspx">Home</a></li>
                       <li><a href="About.aspx">About</a></li>
                       <!-- 其他导航项 -->
                   </ul>
               </nav>
               <div>
                   <asp:ContentPlaceHolder ID="MainContent" runat="server"></asp:ContentPlaceHolder>
               </div>
               <footer>
                   <!-- 页脚内容 -->
                   <p>&copy; 2023 Your Site</p>
               </footer>
           </div>
       </form>
   </body>
   </html>

2. 使用母版页: 在内容页中,通过 MasterPageFile 属性引用母版页。
   <%@ Page Title="Home" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="YourNamespace._Default" %>

   <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
       <!-- 页面特定的头部信息 -->
   </asp:Content>

   <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
       <!-- 页面内容 -->
       <h2>Welcome to Our Site!</h2>
       <p>This is the home page.</p>
   </asp:Content>

   在这个例子中,MasterPageFile="~/Site.master" 指定了使用的母版页。

3. Content 控件和 ContentPlaceHolder 控件: 母版页中的 <asp:ContentPlaceHolder> 控件表示内容页可以插入内容的位置,而在内容页中使用 <asp:Content> 控件来填充这些位置。
   <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
       <!-- 页面特定的头部信息 -->
       <meta name="description" content="Description for this page" />
   </asp:Content>

   在这个例子中,ContentPlaceHolderID="head" 指定了填充母版页头部的位置。

通过使用母版页,可以轻松实现网站的一致性和可维护性。母版页提供了一种将共同的页面结构和元素抽象到单独的文件中的方式,使得对整个网站的更改变得更加方便。


转载请注明出处:http://www.zyzy.cn/article/detail/6586/ASP.NET