ASP.NET expressões embutidas no .NET Framework

Este artigo contém uma introdução às seguintes expressões embutidas ASP.NET:

  • <% ... %>
  • <%= ... %>
  • <%@ ... %>
  • <%# ... %>
  • <%$ ... %>
  • <%-- ... --%>

Versão original do produto: .NET Framework
Número de KB original: 976112

<% ... %> blocos de código inseridos

O bloco de código inserido é usado para preservar a compatibilidade com o ASP clássico. O código no bloco pode executar instruções de programação e funções de chamada na classe de página atual durante a fase de renderização de página.

O exemplo a seguir demonstra uma página ASP.NET que tem um exemplo de código .NET do Microsoft Visual Basic em um bloco de código inserido para exibir os resultados de um loop:

<%@ 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>

Como um bloco de código inserido é sempre misturado com a origem HTML (HyperText Markup Language), é difícil para os desenvolvedores lê-los e mantê-los.

Para obter mais informações sobre blocos de código inseridos em ASP.NET páginas da Web, visite Blocos de Código Inseridos em páginas ASP.NET Web Forms.

<%= ... %> exibindo expressão

A <%= ... %> expressão de exibição é equivalente ao bloco de código inserido que contém apenas a Response.Write(...) instrução. É a maneira mais simples de exibir informações como uma única cadeia de caracteres, uma variável int ou uma constante.

Por exemplo, o código de exemplo a seguir exibe a hora atual:

<%@ Page Language="VB" %>
<html>
    <body>
        <form id="form1" runat="server">
            <%=DateTime.Now.ToString() %>
        </form>
    </body>
</html>

Lembre-se de que a expressão de exibição não pode ser usada nos atributos dos controles do servidor. Isso ocorre porque o .NET Framework compila diretamente toda a expressão em vez do conteúdo exibido como o valor do atributo.

Para obter mais informações sobre como exibir informações de ASP.NET, visite Exibindo de ASP.NET.

<%@ ... %> expressão de diretiva

A expressão de diretiva é a sintaxe que especifica as configurações usadas pela página e pelos compiladores de controle do usuário ao processar ASP.NET páginas do Web Form (.aspx) e arquivos de Controle de Usuário (.ascx).

A estrutura de página ASP.NET dá suporte às seguintes diretivas:

Directiva Descrição
@ Page Define atributos específicos da página que são usados pelo analisador e compilador de páginas ASP.NET. Só pode ser incluído em arquivos .aspx.
Esse nome de diretiva só pode ser usado em ASP.NET páginas do Formulário Web.
@ Control Define atributos específicos do controle que são usados pelo analisador e compilador de páginas ASP.NET. Pode ser incluído apenas em arquivos .ascx (controles de usuário).
O nome da diretiva só pode ser usado em arquivos de Controle de Usuário.
@ Import Importa explicitamente um namespace para uma página ou para um controle de usuário.
@ Implements Indica declarativamente que uma página ou um controle de usuário implementa uma interface de .NET Framework especificada.
@ Register Associa aliases a namespaces e com nomes de classe. O que permite que controles de usuário e controles de servidor personalizados sejam renderizados quando eles são incluídos em uma página ou controle de usuário solicitado.
@ Assembly Vincula um assembly à página atual durante a compilação. Ele disponibiliza todas as classes e interfaces do assembly para uso na página.
@ Master Identifica uma página ASP.NET master.
@ WebHandler Identifica uma página ASP.NET IHttpHandler.
@ PreviousPageType Fornece uma maneira de obter uma digitação forte em relação à página anterior, conforme acessado por meio da propriedade PreviousPage.
@ MasterType Atribui um nome de classe à propriedade Mestre de uma página ASP.NET. Fornece uma maneira de criar uma referência fortemente tipada para a página ASP.NET master.
@ OutputCache Controla declarativamente as políticas de cache de saída de uma página ou de um controle de usuário.
@ Reference Vincula declarativamente uma página ou controle de usuário à página atual ou controle de usuário.

Para obter mais informações sobre a sintaxe de diretiva, visite Sintaxe de Diretiva de Modelo de Texto.

<%# ... %> expressão de associação de dados

A expressão de associação de dados cria associação entre uma propriedade de controle de servidor e uma fonte de dados quando o método DataBind do controle desse servidor é chamado na página.

O exemplo a seguir mostra como usar a expressão de associação de dados para associar a cadeia de caracteres de uma função à propriedade Text de um rótulo:

<%@ 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 obter mais informações sobre a sintaxe de expressão de associação de dados, visite Sintaxe de expressão associação de dados.

<%$ ... %> construtor de expressão

O construtor de expressões é usado para definir valores de propriedades de controle com base nas informações contidas nos arquivos de recurso ou configuração de um aplicativo. O exemplo a seguir é a sintaxe básica do construtor de expressões:
<%$ Expression Prefix: Expression Value %>

O sinal de dólar ($) indica ASP.NET que a expressão a seguir é um construtor de expressões. O prefixo de expressão define o tipo de expressão, como AppSettings, ConnectionStringsou Resources. Além disso, você pode criar e definir seu próprio construtor de expressões. O valor de expressão que segue o cólon (:) é o que ASP.NET realmente usará como o valor de uma determinada propriedade.

A demonstração a seguir mostra como usar o construtor de expressões para obter os direitos autorais de um site do AppSettings nó no arquivo Web.config e como definir as informações de direitos autorais como o valor da propriedade Text do Literal.

O AppSettings nó no arquivo Web.config :

<appSettings>
    <add key="copyright" value="(c) Copyright 2009 WebSiteName.com"/>
</appSettings>

O construtor de expressões na página ASP.NET Web Form:

<div id="footer">
    <asp:Literal ID="Literal1" runat="server" Text="<%$ AppSettings: copyright %>"></asp:Literal>
</div>

Para obter mais informações sobre expressões de ASP.NET, visite ASP.NET Visão geral de expressões.

<Bloco de comentários %-- ... -- %> do lado do servidor

O bloco de comentários do lado do servidor permite que os desenvolvedores insiram comentários de código em qualquer local da fonte HTML de ASP.NET páginas do Formulário Web (exceto em <script> blocos de código). Qualquer conteúdo entre as marcas de abertura e fechamento do bloco de comentários do lado do servidor não será processado no servidor ou renderizado na página resultante.

O exemplo de código a seguir mostra como usar o bloco de comentários do lado do servidor em uma página ASP.NET:

<%@ 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 obter mais informações sobre comentários do lado do servidor, visite Comentários do Lado do Servidor.