0

为了管理我页面上的页面标题,我有一个母版页,页眉中有一个 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.TitleOnInit方法中来修改页面上的代码。

我需要访问母版页代码隐藏中的页面标题,但是当我使用Page.Title.

4

2 回答 2

1

通过使用<%Page.Title = "My page title";%>隐式地告诉ASP.NET在页面的呈现阶段执行这个嵌入的代码块。

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

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

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

通过设置此项,您将能够Page.Title在页面呈现之前稍早从母版页访问该属性。

于 2012-01-26T21:08:31.193 回答
-2

只需使用

<title>My page title</title>
于 2012-01-26T20:29:53.040 回答