asp.net data-binding

¿Cuándo debería usar#y=en los controles ASP.NET?



data-binding (3)

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

Por ejemplo:

<%= Grid.ClientID %>

o

<%# Eval("FullName")%>

¿Alguien puede explicarme cuándo debería usarse cada uno para que pueda mantenerlo en mi mente? ¿Se usa # solo en controles que admiten el enlace de datos?


<% =%> es el equivalente a hacer Response.Write ("") donde sea que lo coloques.

<% #%> es para enlace de datos y solo se puede usar cuando 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 detrás)

Resumen de expresiones de enlaces de datos


Aquí hay una gran entrada 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 DataBind () y no se evalúan en absoluto si no se llama a DataBind ().
  • Las expresiones <% # se pueden usar como propiedades en los controles del lado del servidor. <% = expresiones no pueden.

Hay un par de diferentes picaduras de abeja:

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

También nuevo en ASP.Net 4:

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