2010-01-05 18 views
6

Tengo una página simple dentro de una página maestra (bueno, en una maestría en una maestra).página maestra que genera una segunda etiqueta de título

En el maestro superior tengo la etiqueta head con runat="server", con varios bits como scripts, hojas de estilo, etc. y también un marcador de contenido. No hay etiqueta de título aquí.

En la página que utiliza este maestro, el contenido del marcador de posición contiene <title>pagename</title> bit en él. Realmente tengo que ponerlo allí.

Desafortunadamente, cuando se restituye la página obtengo mi título, que es todo bueno, pero también obtengo una segunda etiqueta de título en blanco. Supongo que la he descargado allí .NET.

¿Hay alguna forma de evitar que salga esta segunda etiqueta del título?

Respuesta

16

De memoria, en virtud de poner el runat = "servidor" en el <head> .Net agrega automágicamente un <title> si no hay ninguno.

creo (no lo he probado) es si en su masterpage haces

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

establecer la etiqueta del título de manera explícita en la cabeza de la Maestra y el establecimiento de visibilidad a las obras falsas. Creo.

+0

astucia, no lo intenté, aunque sospecho que funcionaría. terminaron añadiendo un contentplaceholder separada por el título en la parte superior principal <marcador de posición aquí ... funciona bien gracias de todos modos – nat

+0

acabo de tener el mismo problema y probado esta revisión. Puedo confirmar que funciona. Bien hecho. – draconis

+0

Eliminar runat = "server" de la etiqueta ehad parece funcionar también. – Ondra

4

No tiene que insertar manualmente <title> en la cabeza.
Simplemente configure Page.Title = "title" por código o <%@ Page Title="My Title" .. %> por marcado. ASP.NET resolverá el resto y colocará el título correcto.

1

creo usando:

Si desea establecer el título a nivel de página

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

O

Si desea establecer título dinámico a nivel de página maestra.

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

es una mejor manera de asegurarse de que no se genere la segunda etiqueta de título vacía.

Cuestiones relacionadas