¿Cuándo debo usar # y = en los controles ASP.NET?
-
02-07-2019 - |
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?
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)
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.