Pregunta

He estado usando ASP.NET durante años, pero nunca recuerdo cuándo usar # y = son apropiados.

Por ejemplo:

<%= Grid.ClientID %>

o

<%# Eval("FullName")%>

¿Alguien puede explicar cuándo se debe usar cada uno para que pueda tenerlo claro?¿# solo se usa en controles que admiten el enlace de datos?

¿Fue útil?

Solución

<%= %> es el equivalente a hacer Response.Write("") dondequiera que lo coloque.

<%# %> es para enlace de datos y solo se puede usar donde se admite el enlace de datos (puede usarlos en el nivel de página fuera de un control si llama a Page.DataBind() en su código subyacente)

Descripción general de las expresiones de enlace de datos

Otros consejos

Hay un par de 'picaduras de abeja' diferentes:

  • <%@ - directiva de página
  • <%$ - acceso a recursos
  • <%= - salida explícita a la página
  • <%# - el enlace de datos
  • <%-- - bloque de comentarios del lado del servidor

También nuevo en ASP.Net 4:

  • <%: - escribe en la página, pero con HTML codificado

También nuevo en ASP.Net 4.5:

  • <%#: - Enlace de datos codificados en HTML

Aquí está un gran publicación de blog de Dan Crevier que recorre una aplicación de prueba que escribió para mostrar las diferencias.

En esencia:

  • Las expresiones <%= se evalúan en el momento del renderizado.
  • Las expresiones <%# se evalúan en el momento de DataBind() y no se evalúan en absoluto si no se llama a DataBind().
  • <%# expresiones se pueden utilizar como propiedades en controles del lado del servidor.<%= las expresiones no pueden.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top