从母版页检索页面标题

时间:2012-01-26 20:20:11

标签: c# asp.net master-pages page-title

要管理页面上的页面标题,我在标题中有一个包含ContentPlaceHolder的母版页。

<head runat="server">
    <asp:ContentPlaceHolder runat="server" ID="headContent">
    </asp:ContentPlaceHolder>
</head>

在我的每个页面上,我添加元标记和页面标题如下:

<asp:content id="Header" contentplaceholderid="headContent" runat="server">
    <meta name="keywords" content="keyword1, keyword2" />   
    <meta name="description" content="page description" />
    <%Page.Title = "My page title";%>  
</asp:content>

我无法通过将Page.Title置于页面的OnInit方法中来修改页面上的代码。

我需要访问母版页代码隐藏中的页面标题,但是当我使用Page.Title时,我总是得到一个空标题。

2 个答案:

答案 0 :(得分:1)

使用<%Page.Title = "My page title";%>隐式告诉 ASP.NET在页面呈现阶段执行此embedded code block

这是什么意思?在页面渲染阶段之前,您将无法获得此值。假设您试图比渲染期间更早地获得此值。这就是你得到空字符串的原因。

解决方法可能是在页面开头设置Title指令的<%@ Page属性,例如:

<%@ Page Title="My Title Goes Here" Language="C#" ... %>

通过设置此项,您将能够比页面渲染时间更早地从主页面访问Page.Title属性。

答案 1 :(得分:-2)

只需使用

<title>My page title</title>