Etiquetas "especiales" de ASP.NET

Resuelto Andy White asked hace 15 años • 5 respuestas

¿Cuál es el nombre oficial de las etiquetas ASP.NET "especiales" como esta?

<%# %>
<%= %>
<%@ %>
<%$ %>

Parece que no puedo descifrar el nombre conceptual o conocido de estos, por lo que tengo problemas para buscar más información. Como beneficio adicional, ¿alguien puede darme un resumen rápido de todas las posibles "etiquetas especiales" y qué hace cada una de ellas (o indicarme un recurso)?

Andy White avatar Mar 16 '09 13:03 Andy White
Aceptado

El nombre oficial es " delimitadores de secuencias de comandos del lado del servidor " o " expresiones en línea ASP.NET ". El cuadro de diálogo de configuración de resaltado de sintaxis de Visual Studio 2008 los llama "Script del lado del servidor HTML". Los chicos de Microsoft los llaman "pepitas de código" en sus blogs.

  • <%@ %>es una directiva para páginas web ASP.NET . Se utiliza para páginas y controles para configurar los ajustes del compilador de páginas/controles ( <%@ Control Inherits="MyParentControl" %>).
    • <%@ %>También es una Directiva de Aplicación . Se utiliza para especificar configuraciones específicas de la aplicación para global.asax. Se diferencia de las directivas de la página, ya que solo utiliza un conjunto de etiquetas diferente.
  • <% %>es un bloque de representación de código (para código en línea) . Una de las 4 formas de bloques de código integrado . Se utiliza para incluir código del lado del servidor en el Render()método ( <% x = x + 1; %>) de la clase generada. Formato: única/multilínea o con enlaces múltiples (por ejemplo, if/then/elseintercalados con html), pero no se puede utilizar para declarar funciones.
  • <%= %>es un bloque de representación de código (para expresiones en línea) . Se utiliza como abreviatura de<%Response.Write(value)%>
  • <%: %>(extraoficialmente un " Bloque de código de codificación HTML ") es el mismo que el anterior, pero la salida está codificada en HTML.
  • <%# %>es una expresión de enlace de datos . Se utiliza para el enlace unidireccional (solo lectura) o bidireccional (actualizable) a través de expresiones Eval, Xpath, Bindo (por ejemplo, el valor seleccionado de un control desplegable). Vincula expresiones a propiedades de control enlazadas a datos a través del marcado de atributos del control o como una etiqueta separada que genera una DataBoundLiteralControlinstancia con el valor de su Textpropiedad. Las expresiones son evaluadas por un DataBindingcontrolador de eventos para el control.
  • <%#: %>es una expresión de enlace de datos codificada en HTML (nueva en ASP.NET 4.5). Combina la funcionalidad de <%# %>y <%: %>.
  • <%$ %>es un generador de expresiones ASP.NET . Se utiliza para el enlace de expresiones en tiempo de ejecución para propiedades de control a través de los atributos de etiqueta del servidor. Se usa con AppSettings, ConnectionStringso Resources(o su propia extensión personalizada , por ejemplo para usar propiedades de código subyacente). Estas asignaciones se agregan al OnInit()método de la clase generada.
  • <%-- --%>es un comentario del lado del servidor . Se utiliza para excluir el contenido de la compilación (y por lo tanto generará errores si se hace referencia a un control comentado en el código subyacente). A diferencia de los comentarios html, el contenido no se incluirá en el resultado.
  • <!-- #Include ... -->es una directiva de inclusión del lado del servidor . Se utiliza para insertar el contenido de un archivo en la página, control o archivo global. Útil cuando un control de usuario es excesivo y no se puede utilizar una página maestra.

También hay un Bloque de Declaración de Código , la forma final del Bloque de Código Incrustado.

<script runat="server">
bool IsTrue() {
  return false;
}
</script>

Esto se utiliza para incluir miembros adicionales (métodos, etc.) a la clase generada a partir del marcado ASP.NET. Estos sólo se han proporcionado "principalmente para preservar la compatibilidad con tecnologías ASP más antiguas" y no se recomienda su uso.

Andy Brown avatar Mar 16 '2009 06:03 Andy Brown

No hay respuesta para su pregunta sobre el nombre, pero la página "Sintaxis de página ASP.NET" de MSDN es bastante buena (o más bien, esa es la página de nivel superior; las páginas debajo brindan más información).

EDITAR: Anteriormente había pensado que eso <%# ... %>no estaba incluido en la lista, pero, por supuesto, sí lo está, en Expresiones de enlace de datos. Doh.

Jon Skeet avatar Mar 16 '2009 06:03 Jon Skeet

Siempre he encontrado que esta página de inicio rápido es muy útil siempre que tengo dudas sobre la sintaxis del lado del servidor. Detalla 8 estilos de marcado diferentes y proporciona ejemplos ilustrativos de cada uno, además de explicar los pros y los contras.

Sin embargo, no menciona la directiva a nivel de página, que el IIRC se detalla en otra parte del inicio rápido.

Por supuesto, esto es relevante para ASP.NET 2.0.

Cerebrus avatar Mar 16 '2009 06:03 Cerebrus

Los chicos de Microsoft a veces los llaman "pepitas" o "pepitas de código".

Matth avatar Dec 15 '2010 10:12 Matth