Etiquetas "especiales" de ASP.NET

232

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

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

Parece que no puedo entender el nombre conceptual o bien conocido para estos, así 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 señalarme un recurso)?

Andy White
fuente
1
Microsoft también los llama bloques de código incrustado si contienen código.
Robert Harvey

Respuestas:

350

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 denomina "Script HTML del lado del servidor". Los chicos de Microsoft los llaman "pepitas de código" en sus blogs.

  • <%@ %>es una directiva para las páginas web ASP.NET . Se utiliza para las páginas y los controles para configurar los ajustes del compilador de página / control ( <%@ 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 procesamiento de código (para código en línea) . Una de las 4 formas de bloques de código incrustado . Se utiliza para incluir el código del lado del servidor en el Render()método ( <% x = x + 1; %>) de la clase generada. Formato: sencillo / multilínea o de enlace múltiple (por ejemplo, if/then/elseintercalado con html) pero no se puede usar para declarar funciones.
  • <%= %>es un bloque de procesamiento de código (para expresiones en línea) . Utilizado como taquigrafía para<%Response.Write(value)%>
  • <%: %>(extraoficialmente, un " Bloque de código de codificación HTML ") es el mismo que el anterior, pero el resultado está codificado en HTML.
  • <%# %>es una expresión de enlace de datos . Se utiliza para una vía (de sólo lectura) o de dos vías (actualizable) de unión a través de Eval, Xpath, Bind, o expresiones (por ejemplo, el valor seleccionado de un control de caída hacia abajo). Vincula las expresiones a las propiedades de control vinculadas a datos a través del marcado de atributos del control, o como una etiqueta separada que genera una DataBoundLiteralControlinstancia con el valor en 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 expresión en tiempo de ejecución para las propiedades de control a través de los atributos de la 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 generará errores si se hace referencia a un control comentado en código subyacente) A diferencia de los comentarios html, el contenido no se incluirá en la salida.
  • <!-- #Include ... -->es una directiva de inclusión del lado del servidor . Se utiliza para insertar el contenido de un archivo en la página, el control o el archivo global. Útil cuando un control de usuario es excesivo y no se puede usar una página maestra.

También hay un bloque de declaración de código , el formulario final de 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 solo se han proporcionado "principalmente para preservar la compatibilidad con versiones anteriores de la tecnología ASP" y no se recomienda su uso.

Andy Brown
fuente
1
Creo que hay un <% $ ...%> que enlaza datos con ajustes de aplicaciones / cadenas de conexión.
sisve
No he oído hablar de eso. Tienes una fuente?
Sedat Kapanoglu
3
Se llaman expresiones ASP.NET. Ver msdn.microsoft.com/en-us/library/d5bd1tad.aspx
elo80ka
7

No hay respuesta para su pregunta de nombre, pero la página "Sintaxis de la 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 de ella proporcionan más información).

EDITAR: previamente pensé que eso <%# ... %>no estaba incluido en la lista, pero por supuesto que sí, bajo Expresiones de enlace de datos. Doh

Jon Skeet
fuente
Este enlace actualmente no funciona. Debe seleccionar una versión de .NET Framework antes de que lo haga.
Sam
1
@Sam: Ah, gracias. Creo que se retiró cuando salió .NET 4.5, por alguna razón. He editado el enlace.
Jon Skeet
1
¡Pensé que Jon Skeet no estaba haciendo desarrollo web ...!
CodeArtist el
6

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 de nivel de página, que IIRC se detalla en otra parte del Inicio rápido.

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

Cerebro
fuente
Esta es una respuesta de solo enlace. Por favor, incluya información relevante.
zzzzBov
1
el enlace está obsoleto :-(
Roland
6

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

Matth
fuente
0

También he escuchado estas llamadas "picaduras de V", incluso en el Podcast de StackOverflow.

Chris Moschini
fuente