2008-10-14 7 views
5

No lo entiendo.¿Por qué mi página ASP.NET agrega el prefijo 'ctl00_ctl00' a los identificadores de elementos html y rompe el diseño?

Los ids de los elementos html en la página maestra son cambiados por la misma identificación pero con un prefijo y está rompiendo el diseño CSS.

En la página maestra que tengo:

<div id="container" runat="server"> 

    <asp:ContentPlaceHolder ... 

... 

El código anterior se hace

<div id="ctl00_ctloo_container"> 

    ... 

Y los estilos CSS se han ido obviamente.

¿Cómo lo detengo?

Gracias!

Respuesta

4

WebForms sólo deben reescribir las identificaciones de los controles de servidor (como <asp:ContentPlaceHolder />, no elemento HTML ordinario como <div id="container"> sin runat="server"

No se puede impedir el marco de la reescritura de identificación en los controles de servidor. Puede utilizar los nombres de clase en su lugar, sin embargo.

+0

Muchas gracias a todos, en este caso tuve el runat = "servidor" atribuido en el div, lo siento, no lo proporcioné en el primer momento, es por eso que el Id fue cambiado !! –

1

AFAIK no puede hacer esto. Este es el comportamiento predeterminado debido al árbol de control.

Si desea utilizar CSS a continuación, establecer directamente la clase CSS, no dependen de identificadores, como

<asp:Whatever runat="server" id="whatever" CssClass="whateverClass"> 

Actualización:Here es un hilo similair, pero no va a ayudar en tu problema de CSS

1

¿necesita la etiqueta runat = "server"? Si usted no hace nada con el elemento div en su código subyacente, eliminarlo.

-1

no necesito el runat = etiqueta "servidor" y lo han eliminado. No sé por qué estaba allí ... Los ID no son c ahorcado ahora. Gracias

Cuestiones relacionadas