¿Alguien sabe por qué ASP.NET 4 ha eliminado el prefijo ctl00
en controles ASP?ASP.NET 2.5 prefijando ctl00 y ASP.NET 4 sin prefijo ctl00
¿Hay alguna configuración que me haya perdido?
¿Alguien sabe por qué ASP.NET 4 ha eliminado el prefijo ctl00
en controles ASP?ASP.NET 2.5 prefijando ctl00 y ASP.NET 4 sin prefijo ctl00
¿Hay alguna configuración que me haya perdido?
En ASP.NET 4.0, que hemos introducido soporte para la sintaxis HTML más limpio. Puedes leer al respecto at Scott Gu's blog. Si desea que el modelo clásico para los ID de cliente, usted puede ajustar su web.config:
<configuration>
<system.web>
<pages controlRenderingCompatibilityVersion="3.5" />
Y que va a hacer más fácil la actualización de su aplicación. Puede cambiar esto por el control (y por página) mediante la propiedad Control.ClientIDMode
, que también se puede establecer en el web.config:
<configuration>
<system.web>
<pages clientIDMode="AutoID|Predictable|Static|Inherit" />
AutoID
hace que los controles con el modelo clásico ASP.NET 2.0.
No es una configuración, sino una decisión de MS para simplificar la forma en que las identidades de los controles dentro de los contenedores se transforman en el cliente.
Aquí hay un blog post de Scott Guthrie que explica los cambios. El razonamiento detrás de él:
Limpio, normas basadas, CSS-Friendly marcado
Por lo que recuerdo, hasta ASP.NET para decidir qué prefijo usar. Es una mala práctica hacer referencia en los controles con el valor de identificación codificado.
Debe utilizar la propiedad ClientId que siempre le generará identificación apropiada:
<td class="tmarg10" style="width: 150px">
<label for="<%=txtName.ClientID %>">
Name of the mall group :</label>
</td>
<td class="tmarg10">
<asp:TextBox ID="txtName" runat="server" Columns="90" /> <br />
</td>
En el ejemplo anterior, el cálculo de la identificación correspondiente del cuadro de texto y ponerlo en atributo de etiqueta. De esta forma, ya no tendrás que preocuparte por mantener la misma identificación del control.
Si solo desea agregar el prefijo 'ct100' a los ID de su control, agregue la página maestra a su página web. Pero como se dijo anteriormente, trate de evitar el uso de hardcode con identificadores de control en sus fuentes y lea los comentarios de Metthew para la generación de ID personalizada
En mi caso, es probablemente especial, pero para todos los que probaron este método y no funcionó para Por primera vez intente también poner el atributo clientIDMode al mismo tiempo. –
TypingPanda