Visão Geral sobre Expressões do ASP.NET

Expressões ASP.NET são uma maneira declarativa de definir propriedades do controle com base nas informações que são avaliadas em tempo de execução.Por exemplo, você pode usar expressões para definir uma propriedade com valores que se baseiam em sequências de caracteres de conexão, configurações de aplicativos e outros valores contidos dentro da configuração de um aplicativo e arquivos de recurso.Expressões são avaliadas em tempo de execução quando os elementos declarativos da página são analisados, e o valor representado pela expressão é substituído pela sintaxe da expressão.(Como expressões são avaliadas ao tempo de análise, você não pode criar expressões no código dinamicamente.)

Um uso comum de expressões é em controles da fonte de dados para fazer referência a uma sequência de caracteres de conexão.Em vez de incluir a sequência de caracteres de conexão diretamente no controle da fonte de dados como um valor da propriedade, você pode usar uma expressão que especifica onde está a sequência de caracteres de conexão no arquivo de configuração.Em tempo de execução, a expressão é resolvida lendo-se a sequência de caracteres de conexão a partir do arquivo de configuração.Você pode usar expressões para qualquer configuração de propriedade que desejar resolver em tempo de execução em vez de definir como um valor estático.

Usar expressões lhe ajuda a manter o seu aplicativo nas seguintes maneiras:

  • Você pode reduzir o código no seu aplicativo referenciando informações dinâmicas declarativamente.Isso evita ter que escrever código para definir valores de propriedade em tempo de execução.

  • Você pode reutilizar as mesmas configurações em vários controles.Por exemplo, se você armazenar uma sequência de caracteres de conexão no arquivo Web.config e, em seguida, usar expressões para fazer referência à sequência de caracteres de conexão em páginas, você altera a sequência de caracteres de conexão em um local central em vez de alterá-la em cada controle que a usa.

  • Você pode armazenar dados confidenciais como credenciais de sequências de caracteres de conexão (ou outros dados do aplicativo) no arquivo Web.config e, em seguida, criptografar os dados.

  • Se você estiver trabalhando com um designer visual como o Visual Studio, você pode aproveitar as ferramentas no designer que podem ajudá-lo a criar expressões.

As expressões são também extensíveis, para que você possa definir sua própria sintaxe de expressão.Em seguida, você pode criar expressões que chamam o seu manipulador personalizado de expressão para retornar um valor usando a sua lógica personalizada.

Sintaxe básica

A sintaxe básica de uma expressão do ASP.NET é a seguinte:

<%$ expressionPrefix: expressionValue %>

O sinal de dólar ($) indica ao ASP.NET que segue uma expressão.O prefixo da expressão define o tipo da expressão, como AppSettings, ConnectionStrings, ou Resources.Após os dois-pontos (:) é o valor real da expressão que o ASP.NET resolverá.

A sintaxe da expressão não está vinculada a nenhuma linguagem .NET específica.Você pode usar a mesma sintaxe de expressão independentemente de você usar Visual Basic, C# ou qualquer outra linguagem de programação em suas páginas ASP.NET.

Sequências de conexão

Um uso comum de expressões é para definir a propriedade de sequência de caracteres de conexão de um controle, como o controle SqlDataSource, com base no valor de uma sequência de caracteres de conexão armazenada no arquivo Web.config.Por exemplo, você pode ter o seguinte controle SqlDataSource com um atributo de sequência de caracteres de conexão:

<asp:SqlDataSource ID="SqlDataSource1" Runat="server" 
    SelectCommand="SELECT * FROM [Employees]"
    ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString1 %>">
</asp:SqlDataSource>

O código realçado mostra uma expressão, que está contida entre aspas e denota o valor do atributo.A expressão referencia uma sequência de caracteres de conexão chamada "NorthwindConnectionString1" que é definida no elemento connectionStrings do arquivo Web.config.O elemento connectionStrings pode parecer com o seguinte:

<configuration>
  <connectionStrings>
    <add name="NorthwindConnectionString1" 
      connectionString="Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;"
      providerName="System.Data.SqlClient" />
  </connectionStrings>
    <!-- additional settings -->
</configuration>
Observação:

É recomendável para segurança adicionada que você criptografe a seção do arquivo de configuração que contém sequências de caracteres de conexão.Para obter detalhes, consulte:Criptografando informações de configuração usando configuração protegida.No exemplo anterior, a seção configuration do arquivo de configuração é mostrada não criptografada para fins de esclarecimento.

Cada sequência de caracteres de conexão recebe um nome, que pode ser usado em uma expressão para fazer referência a ela em suas páginas ASP.NET.

Configurações de aplicativo

Além de usar expressões para sequências de caracteres de conexão, você pode usar expressões para fazer referência a configurações de aplicativo definidas em um arquivo de configuração acessível para o Web Site.Por exemplo, você pode frequentemente ter usado sequências de caracteres, como a mensagem de direitos autorais do seu site, armazenadas na seção AppSettings do seu arquivo Web.config, que podem ser semelhantes a estas:

<appSettings>
  <add key="copyright" value="(c)Copyright 2004 Northwind Traders"/>
</appSettings>

Em suas páginas ASP.NET, você pode referenciar o valor usando uma expressão semelhante à seguinte:

<%$ AppSettings: copyright %>

Isso permitiria que você frequentemente mantenha elementos citados dentro de arquivo de configuração em vez de ter que alterar o mesmo texto em cada página.

Exibindo Conteúdo Estático Usando Expressões

Se você desejar usar uma expressão como um valor estático em sua página ou controle, você deve usar uma expressão como parte de um controle de servidor ASP.NET.Uma estratégia comum é adicionar um controle Literal e definir sua propriedade Text como uma expressão.Por exemplo, para colocar um aviso de direitos autorais na parte inferior de cada página você pode usar o seguinte:

<p align="center">

<asp:Literal text="<%$ AppSettings: copyright %>"/>

</p>

Arquivos de recursos

Além disso, para exibir os valores contidos em um arquivo de configuração, você pode exibir valores que estejam armazenados nos arquivos de recurso (.resx ou .resource).Você normalmente usa arquivos de recurso para armazenar informações para um idioma ou uma combinação de idioma e cultura específica.Usando expressões e arquivos de recurso, você pode criar uma página da Web que exiba texto em idiomas diferentes dependendo dos valores determinados em tempo de execução, como a configuração do idioma e da cultura relatados pelo navegador, ou uma escolha de idioma explícita pelo usuário.

Por exemplo, quando estiver localizando conteúdo automaticamente, você pode definir a propriedade Text de um controle de servidor usando sintaxe de expressão, como neste exemplo:

<asp:Label id="label1"  text="<%$ Resources: Messages, ThankYouLabel %>" />

Na pasta App_GlobalResources, você poderia ter arquivos de recursos denominados Messages.resx, Messages.es.resx, Message.de.resx e assim por diante — um arquivo de recurso Messages para cada idioma que você deseja oferecer suporte.O arquivo Messages.resx representa o recurso neutro (retorno) que é usado se nenhuma cultura explícita for definida.No arquivo Messages.resx, você pode ter uma entrada como esta:

<data name="ThankYouLabel"><value>Thank you very much!</value></data>

Você terá entradas semelhantes em outros arquivos de recursos, com as sequências de caracteres traduzidas corretamente para o idioma representado por que arquivo de recurso.Para obter mais informações sobre o uso de expressões para recursos e localização, consulte Visão geral sobre recursos de página da Web ASP.NET.

Consulte também

Conceitos

Visão geral da sintaxe de página da Web ASP.NET

Outros recursos

Sintaxe de arquivo de configuração do ASP.NET