En ASP.NET, ¿cuáles son las diferentes formas de insertar código en .aspx?
Pregunta
¿Puedo obtener un "cuándo usar" para estos y otros?
<% %>
<%# EVAL() %>
Gracias
Solución
Revisar la Referencia de sintaxis de formularios web en MSDN.
Para lo básico,
<% %> se utiliza para bloques de código puro.Generalmente solo uso esto para declaraciones if
<div class="autenticado">
<div class="no autenticado">
- se utiliza para agregar texto a su marcado;es decir, equivale a
<div class='<%= IsLoggedIn?"autenticado":"no autenticado" %>'>
<%# Expression %> es muy similar a lo anterior, pero se evalúa en un escenario de DataBinding.Una cosa que esto significa es que puedes usar estas expresiones para establecer valores de controles runat="server", lo cual no puedes hacer con la sintaxis <%= %>.Normalmente, esto se usa dentro de una plantilla para un control enlazado a datos, pero también puede usarlo en su página y luego llamar a Page.DataBind() (o Control.DataBind()) para hacer que ese código se evalúe.
Los otros mencionados en el artículo vinculado son menos comunes, aunque ciertamente también tienen sus usos.
Otros consejos
También puedes usar
<%= Class.Method() %>
E imprimirá el resultado, tal como puedes hacerlo en Ruby on Rails.
Solo quiero agregar, también está la expresión de recursos.
<%$ Resources:resource, welcome%>
y asp.net buscaría automáticamente la versión localizada de "bienvenida" en los ensamblajes satélite.
En ASP.NET 4.0, viene <%:%> sintaxis para escribir algo codificado en html.
<%: "<script>alert('Hello XSS')</script>" %>
Lo anterior se puede utilizar en lugar de amado.
<%= Html.Encode("<script>alert('Hello XSS')</script>")%>