Pergunta

Para gerenciar o título da página em minhas páginas, tenho uma página mestra com ContentPlaceHolder no cabeçalho.

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

Em cada uma das minhas páginas, adiciono as meta tags e o título da página da seguinte forma:

<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>

Não consigo modificar o código nas páginas colocando o Page.Title no OnInit método da página.

Preciso acessar o título da página no codebehind da página mestra, mas sempre recebo um título vazio quando uso Page.Title.

Foi útil?

Solução

Usando <%Page.Title = "My page title";%> você dizer implicitamente o ASP.NET para executar isso bloco de código incorporado durante a fase de renderização da página.

O que isso significa?Você não conseguirá obter esse valor antes da fase de renderização da página.Supondo que você esteja tentando obter esse valor um pouco antes da renderização.É por isso que você obtém a string vazia.

A solução alternativa pode ser definir seu Title propriedade do <%@ Page diretiva no início da sua página, por exemplo:

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

Ao definir isso, você poderá acessar o Page.Title propriedade da sua página mestra um pouco antes de ocorrer a renderização da página.

Outras dicas

Apenas use

<title>My page title</title>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top