我是 ASP.NET 的新手,请帮助我更多地了解 MasterPages 的概念。
我有 Site.master,其中包含通用标题数据(css、元数据等)、中心表单(空白)和页脚(版权信息、联系我们链接等)。
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="Site.master.cs" Inherits="_SiteMaster" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="tagHead" runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="styles.css" type="text/css" />
</head>
<body>
<form id="frmMaster" runat="server">
<div>
<asp:ContentPlaceHolder ID="holderForm" runat="server"></asp:ContentPlaceHolder>
<asp:ContentPlaceHolder ID="holderFooter" runat="server">Some footer here</asp:ContentPlaceHolder>
</div>
</form>
</body>
</html>
并且我想将第二个母版页用于子目录中的项目,该子目录将包含对 Page_Load 的 SQL 查询以进行日志记录(整个站点不需要)。
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="Project.master.cs" Inherits="_ProjectMaster" MasterPageFile="~/Site.master" %>
<asp:Content ContentPlaceHolderID="holderForm" runat="server">
<asp:ContentPlaceHolder ID="holderForm" runat="server" EnableViewState="true"></asp:ContentPlaceHolder>
</asp:Content>
<asp:Content ContentPlaceHolderID="holderFooter" runat="server">
<asp:ContentPlaceHolder ID="holderFooter" runat="server" EnableViewState="true"></asp:ContentPlaceHolder>
</asp:Content>
但我有一个问题:没有显示页脚。
我的错误在哪里?我是否可以将第二母版页用作日志记录的父类(super class)?
项目页面如下所示:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" MasterPageFile="~/Project.master" %>
<asp:Content ContentPlaceHolderID="holderForm" runat="server">
<p>Hello World!</p>
</asp:Content>
<asp:Content ContentPlaceHolderID="holderFooter" runat="Server">
Some footer content
</asp:Content>
最佳答案
我一直在处理嵌套母版页,并遇到过类似的问题。据我所见,您在 Site.Master 中有“此处有一些页脚”的地方是问题所在,我也遇到过类似的问题,即在 contentplaceholder 标签中包含内容。如果你试试这个
<asp:ContentPlaceHolder ID="holderFooter" runat="server"/>Some footer here
然后您应该能够看到页脚内容。
关于c# - 使用嵌套母版页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/476049/