2010-01-05 10 views
6

Ho una pagina semplice all'interno di una pagina master (o meglio, in un master in un master).pagina master generare un secondo tag title

Nel master in alto ho il tag head con runat="server", con un numero di bit come script, fogli di stile, ecc. E anche un contentplaceholder. Non c'è tag titolo qui.

Nella pagina che utilizza questo master, il contenuto per il segnaposto contiene il <title>pagename</title> bit in esso. Devo davvero metterlo lì.

Purtroppo quando la pagina viene visualizzata ho il mio titolo che è tutto buono, ma anche ottenere un secondo tag title vuoto - presumo scaricati in là da .NET.

C'è un modo di fermare questa seconda modifica di titolo che esce?

risposta

16

Dalla memoria, in virtù del posizionamento di runat = "server" su <head> .Net aggiunge automaticamente un <title> se non ce n'è uno già.

credo (non ho provato) è se nel vostro masterpage si fa

<head runat="server"> 
Blah 
<title runat="server" visible="false"></title> 
</head> 

impostando il tag Title esplicitamente nella testa del masterpage e impostando la visibilità a false opere. Credo.

+0

astuzia, abbiamo provato che, anche se ho il sospetto che avrebbe funzionato. finito per l'aggiunta di un ContentPlaceHolder separata per il titolo nel master superiore <segnaposto qui ... funziona bene grazie comunque – nat

+0

Ho appena avuto lo stesso problema e provato questa correzione. Posso confermare che funziona. Molto bene. – draconis

+0

Rimozione runat = "server" dal tag Ehad sembra funzionare pure. – Ondra

4

Non è necessario inserire manualmente <title> alla testa.
Basta impostare Page.Title = "title" per codice o <%@ Page Title="My Title" .. %> per markup. ASP.NET capirà il resto e inserirà il titolo giusto.

1

penso utilizzando:

Se si desidera impostare il titolo a livello di pagina

<%@ Master ... %> 
<html> 
<head runat="server"> 
    <title> 
    <asp:ContentPlaceHolder ID="titleContent" runat="server" /> 
    </title> 
</head> 

Oppure,

Se si desidera impostare titolo dinamica a livello di pagina master.

<%@ Master ... %> 
<html> 
<head runat="server"> 
    <title> 
    <asp:Literal ID="litPageTitle" runat="server"></asp:Literal> 
    </title> 
</head> 

è il modo migliore per assicurarsi che il tag del secondo titolo vuoto non venga generato.