ASP.NET expresiones en línea en el .NET Framework
Este artículo contiene una introducción a las siguientes ASP.NET expresiones en línea:
- <% ... %>
- <%= ... %>
- <%@ ... %>
- <%# ... %>
- <%$ ... %>
- <%-- ... --%>
Versión del producto original: .NET Framework
Número KB original: 976112
<% ... %> bloques de código incrustados
El bloque de código incrustado se usa para conservar la compatibilidad con versiones anteriores con ASP clásica. El código del bloque puede ejecutar instrucciones de programación y funciones de llamada en la clase de página actual durante la fase de representación de páginas.
En el siguiente ejemplo se muestra una página ASP.NET que tiene código de ejemplo de Microsoft Visual Basic .NET en un bloque de código incrustado para mostrar los resultados de un bucle:
<%@ Page Language="VB" %>
<html>
<body>
<form id="form1" runat="server">
<% For i As Integer = 16 To 24 Step 2%>
<div style="font-size: <% Response.Write(i)%>">
Hello World<br />
</div>
<% Next%>
</form>
</body>
</html>
Dado que un bloque de código incrustado siempre se mezcla con el origen del lenguaje de marcado de hipertexto (HTML), es difícil para los desarrolladores leerlos y mantenerlos.
Para obtener más información acerca de los bloques de código incrustados en ASP.NET web, visite Bloques de código incrustados en ASP.NET Web Forms páginas.
<%= ... %> expresión que muestra
La <%= ... %> expresión de visualización es un equivalente del bloque de código incrustado que contiene solo la Response.Write(...) instrucción. Es la forma más sencilla de mostrar información, como una cadena única, una variable int o una constante.
Por ejemplo, el siguiente código de ejemplo muestra la hora actual:
<%@ Page Language="VB" %>
<html>
<body>
<form id="form1" runat="server">
<%=DateTime.Now.ToString() %>
</form>
</body>
</html>
Recuerde que la expresión de visualización no se puede usar en los atributos de los controles de servidor. Se debe a que .NET Framework compila directamente toda la expresión en lugar de mostrar el contenido como el valor del atributo.
Para obtener más información acerca de cómo mostrar información de ASP.NET, visite Mostrar desde ASP.NET.
<%@ ... %> expresión de directiva
La expresión de directiva es la sintaxis que especifica la configuración que usan la página y los compiladores de control de usuario cuando procesan páginas de formulario web (.aspx) y archivos de ASP.NET control de usuario (.ascx).
El ASP.NET de páginas admite las siguientes directivas:
| Directiva | Descripción |
|---|---|
@ Page |
Define los atributos específicos de página que usa el ASP.NET de página y el compilador. Solo se puede incluir en archivos .aspx. Este nombre de directiva solo se puede usar en ASP.NET de formulario web. |
@ Control |
Define los atributos específicos del control que usa el ASP.NET de página y el compilador. Solo se puede incluir en archivos .ascx (controles de usuario). El nombre de la directiva solo se puede usar en archivos de control de usuario. |
@ Import |
Importa explícitamente un espacio de nombres en una página o en un control de usuario. |
@ Implements |
Indica declarativamente que una página o un control de usuario implementa una interfaz .NET Framework usuario. |
@ Register |
Asocia alias con espacios de nombres y con nombres de clase. Lo que permite que los controles de usuario y los controles de servidor personalizados se represente cuando se incluyen en una página solicitada o un control de usuario. |
@ Assembly |
Vincula un ensamblado a la página actual durante la compilación. Hace que todas las clases e interfaces del ensamblado estén disponibles para su uso en la página. |
@ Master |
Identifica una página ASP.NET principal. |
@ WebHandler |
Identifica una página ASP.NET IHttpHandler. |
@ PreviousPageType |
Proporciona una forma de obtener una escritura segura con respecto a la página anterior a la que se tiene acceso a través de la propiedad PreviousPage. |
@ MasterType |
Asigna un nombre de clase a la propiedad Master de una ASP.NET página. Proporciona una forma de crear una referencia fuertemente tipo a la ASP.NET principal. |
@ OutputCache |
Controla declarativamente las directivas de almacenamiento en caché de resultados de una página o de un control de usuario. |
@ Reference |
Vincula declarativamente una página o control de usuario a la página o control de usuario actual. |
Para obtener más información acerca de la sintaxis de directiva, visite Sintaxis de directiva de plantilla de texto.
<%# ... %> expresión de enlace de datos
La expresión de enlace de datos crea un enlace entre una propiedad de control de servidor y un origen de datos cuando se llama al método DataBind del control de este control de servidor en la página.
En el ejemplo siguiente se muestra cómo usar la expresión de enlace de datos para enlazar la cadena de una función a la propiedad Text de una etiqueta:
<%@ Page Language="VB" %>
<script runat="server">
Protected Function SayHello() As String
Return "Hello World"
End Function
Protected Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs)
lblHello.DataBind()
End Sub
</script>
<html>
<body>
<form id="form1" runat="server">
<asp:Label ID="lblHello" runat="server" Text="<%# SayHello%>"></asp:Label>
</form>
</body>
</html>
Para obtener más información acerca de la sintaxis de expresión de enlace de datos, visite Sintaxis de expresión de enlace de datos.
<%$ ... %> de expresiones
El generador de expresiones se usa para establecer valores de propiedades de control en función de la información contenida en la configuración o los archivos de recursos de una aplicación. El siguiente ejemplo es la sintaxis básica del generador de expresiones:
<%$ Expression Prefix: Expression Value %>
El signo de dólar ($) indica ASP.NET que la siguiente expresión es un generador de expresiones. El prefijo de expresión define el tipo de expresión, como AppSettings, ConnectionStringso Resources. Además, puede crear y definir su propio generador de expresiones. Valor de expresión que sigue a los dos puntos (:) es lo ASP.NET se usará realmente como el valor de una determinada propiedad.
En la siguiente demostración se muestra cómo usar el generador de expresiones para obtener los derechos de autor de un sitio web AppSettings desde el nodo del archivo Web.config y cómo establecer la información de copyright como el valor de la propiedad Text del literal.
El AppSettings nodo del Web.config archivo:
<appSettings>
<add key="copyright" value="(c) Copyright 2009 WebSiteName.com"/>
</appSettings>
El generador de expresiones de la ASP.NET formulario web:
<div id="footer">
<asp:Literal ID="Literal1" runat="server" Text="<%$ AppSettings: copyright %>"></asp:Literal>
</div>
Para obtener más información sobre ASP.NET, visite ASP.NET de expresiones.
<%-- ... -- %> bloque de comentarios del lado servidor
El bloque de comentarios del lado servidor permite a los desarrolladores insertar comentarios de código en cualquier ubicación del origen HTML de las ASP.NET formulario web (<script>excepto dentro de los bloques de código). Cualquier contenido entre las etiquetas de apertura y cierre del bloque de comentarios del lado servidor no se procesará en el servidor ni se representará en la página resultante.
En el siguiente ejemplo de código se muestra cómo usar el bloque de comentarios del lado servidor en una ASP.NET página:
<%@ Page Language="VB" %>
<script runat="server">
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Dim strName As String
strName = Session("userName")
lblUserName.Text = strName
End Sub
</script>
<html>
<body>
<form id="form1" runat="server">
<%-- Label for UserName --%>
<asp:Label ID="lblUserName" runat="server" Text=""></asp:Label>
</form>
</body>
</html>
Para obtener más información acerca de los comentarios del lado servidor, visite Comentarios del lado servidor.