我有一个有几页的网站,我希望这些网页的标题是:
Foo - 1st Page
Foo - 2nd Page
Foo - 3rd Page
我使用以下代码创建了母版页:
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Foo.master.cs" Inherits="Foo" %>
<!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 runat="server">
<title>Foo - <asp:ContentPlaceHolder ID="SubTitle" runat="server"></asp:ContentPlaceHolder></title>
</head>
<body>
<asp:ContentPlaceHolder ID="MainContent" runat="server">
</asp:ContentPlaceHolder>
</body>
</html>
然后每个页面都是这样的:
<%@ Page Language="C#" MasterPageFile="~/Foo.Master" %>
<asp:Content ID="Content1" ContentPlaceHolderID="SubTitle" runat="server">1st Page</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<a href="Page2.aspx">Page 2</a>
</asp:Content>
当我在浏览器中加载页面时,我希望标题为Foo - 1st Page
,但它只是1st Page
。
html来源是:
<!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><title>
1st Page
</title></head>
<body>
<a href="Page2.aspx">Page 2</a>
</body>
</html>
我做错了什么?
答案 0 :(得分:2)
您不想从runat="server"
删除head
;它会产生其他问题。
使用以下方法,这是Visual Studio 2012中ASP.Net Web窗体应用程序中的默认方法。
<!-- Master Page -->
<head runat="server">
<title>Foo - <%: Page.Title %></title>
</head>
<!-- Content Page/xxx.aspx -->
<%@ Page Title="Home Page" ...>
答案 1 :(得分:0)
原来已经问过这个问题:ASP.NET: Having common Page title in master page with each page adding page-specific title?
在阅读完答案后,我发现从母版页中的runat="server"
元素中删除head
就可以了。