aspnet - Tags "especiais" do ASP.NET




tags asp (4)

Qual é o nome oficial para as tags ASP.NET "especiais" como esta:

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

Não consigo descobrir o nome conceitual ou conhecido deles, por isso estou tendo problemas para pesquisar mais informações. Como um bônus, alguém pode me dar um rápido resumo de todas as possíveis "tags especiais" e o que cada uma delas faz (ou me apontar para um recurso)?


Eu sempre achei essa página QuickStart muito útil, sempre que tenho dúvidas sobre a sintaxe do lado do servidor. Ele detalha 8 diferentes estilos de marcação e fornece exemplos ilustrativos de cada um, além de explicar os prós e contras.

Não menciona a diretiva de nível de página, no entanto, qual IIRC é detalhado em outro lugar no início rápido.

Claro, isso é relevante para o ASP.NET 2.0.


Eu também ouvi esses chamados "V stings", incluindo o Podcast.


O nome oficial é " delimitadores de script do lado do servidor " ou " expressões in-line do ASP.NET ". A caixa de diálogo de configurações de realce de sintaxe do Visual Studio 2008 chama isso de "Script HTML do lado do servidor". Os caras da Microsoft os chamam de "nuggets de código" em seus blogs.

  • <%@ %> é uma diretiva para páginas da Web ASP.NET . Usado para páginas e controles para definir as configurações do compilador de página / controle ( <%@ Control Inherits="MyParentControl" %> ).
    • <%@ %> também é uma diretiva de aplicativos . Usado para especificar configurações específicas do aplicativo para global.asax. Distinta das diretivas de página, pois usa apenas um conjunto de tags diferente.
  • <% %> é um bloco de renderização de código (para código embutido) . Uma das quatro formas de blocos de código incorporados . Usado para inclusão de código do lado do servidor no método Render() ( <% x = x + 1; %> ) da classe gerada. Formato: single / multiline ou multiple-linked (por exemplo, if/then/else intercalado com html), mas não pode ser usado para declarar funções.
  • <%= %> é um bloco de renderização de código (para expressões sequenciais) . Usado como um atalho para <%Response.Write(value)%>
  • <%: %> (não oficialmente um " Html Encoding Code Block ") é o mesmo que o anterior, mas a saída é codificada em HTML.
  • <%# %> é uma expressão de vinculação de dados . Usado para ligação unidirecional (somente leitura) ou bidirecional (atualizável) por meio de Eval , Xpath , Bind ou expressões (por exemplo, o valor selecionado de um controle suspenso). Vincula expressões a propriedades de controle vinculadas a dados por meio da marcação de atributos do controle ou como uma marca separada que gera uma ocorrência de DataBoundLiteralControl com o valor em sua propriedade Text . Expressões são avaliadas por um manipulador de eventos DataBinding para o controle.
  • <%#: %> é uma expressão de vinculação de dados codificada em HTML (nova no ASP.NET 4.5). Combina a funcionalidade de <%# %> e <%: %> .
  • <%$ %> é um construtor de expressões do ASP.NET . Usado para ligação de expressão de tempo de execução para propriedades de controle por meio dos atributos de marca do servidor. Usado com AppSettings , ConnectionStrings ou Resources (ou sua própria extensão personalizada , por exemplo, para usar propriedades code-behind). Essas atribuições são adicionadas ao método OnInit() da classe gerada.
  • <%-- --%> é um comentário do lado do servidor . Usado para excluir o conteúdo da compilação (e, portanto, gerará erros se um controle comentado for mencionado em code-behind). Ao contrário dos comentários html, o conteúdo não será incluído na saída.
  • <!-- #Include ... --> é uma diretiva de inclusão do lado do servidor . Usado para inserir o conteúdo de um arquivo na página, controle ou arquivo global. Útil quando um controle de usuário é excessivo e uma página mestra não pode ser usada.

Há também um bloco de declaração de código , o último formulário do bloco de código incorporado.

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

Isso é usado para incluir membros adicionais (métodos, etc.) na classe gerada a partir da marcação ASP.NET. Eles só foram fornecidos "principalmente para preservar a compatibilidade com a antiga tecnologia ASP" e não são recomendados para uso.


Os caras da Microsoft os chamam de "nuggets" ou "nuggets de código" às vezes.





tags