2012-01-26 144 views
0

爲了管理我的頁面上的頁面標題,我在頁眉中有一個帶有ContentPlaceHolder的主頁面。從主頁面檢索頁面標題

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

在我的每個網頁,我添加了meta標籤和頁面標題如下:

<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時,我總是會得到一個空標題。

回答

1

使用<%Page.Title = "My page title";%>隱含告訴在ASP.NET中的頁面的呈現階段執行該embedded code block

這是什麼意思?在頁面呈現階段之前,您將無法獲得此值。假設你想要比渲染過程中早一點得到這個值。這就是爲什麼你得到空字符串。

的解決方法可能是在設置您的<%@ Page指令Title財產在你的頁面例如開頭:

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

通過設置這一點,你就可以從你的主人頁面訪問Page.Title財產發生在頁面呈現之前的一點點時間。

-2

只需使用

<title>My page title</title> 
+2

通過使用此構造,您將設置頁面的標題,但是您將無法通過「Page.Title」屬性獲取此值 – Alex