Получение заголовка страницы с главной страницы

Чтобы управлять заголовком страницы на моих страницах, у меня есть главная страница с 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.


person Gen    schedule 26.01.2012    source источник


Ответы (2)


Используя <%Page.Title = "My page title";%>, вы неявно указываете ASP.NET выполнить это встроенный блок кода на этапе рендеринга страницы.

Что это означает? Вы не сможете получить это значение до фазы рендеринга страницы. Предполагая, что вы пытаетесь получить это значение немного раньше, чем во время рендеринга. Вот почему вы получаете пустую строку.

Обходной путь может заключаться в установке вашего Title свойства директивы <%@ Page в начале вашей страницы, например:

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

Установив это значение, вы сможете получить доступ к свойству Page.Title со своей главной страницы немного раньше, чем произойдет отрисовка страницы.

person Alex    schedule 26.01.2012

Просто используйте

<title>My page title</title>
person amit_g    schedule 26.01.2012
comment
Используя эту конструкцию, вы установите заголовок страницы, но не сможете получить это значение обратно через свойство Page.Title. - person Alex; 27.01.2012