O nome oficial é "delimitadores de script do lado do servidor" ou "expressões embutidas do ASP.NET".
A caixa de diálogo de configurações de destaque da sintaxe do Visual Studio chama esses "
scripts HTML do lado do
servidor
". Os funcionários da Microsoft os chamam de "nuggets de código" em seus blogs.
<% %>
• Esta diretiva indica que o código ( no meio destas tags ) devem ser processadas pelo servidor durante a
renderização da página e se houver alguma informação a ser exibida para o usuário ela será agregada ao HTML da página
e estas diretivas podem mudar a maneira como o servidor deve controlar a página e os controles de servidor da mesma.
• Usado para inclusão de código do lado do servidor que na renderização da página
(no método Render()) (<% x = x + 1;%>) pode alterar a metodologia aplicada a página ou calcular/exibir um resultado.
Formato: único/multilinha ou vinculado a múltiplos (por exemplo, se/então/então intercalado com html), mas
não pode ser usado para declarar funções.
<%@ %>
• É uma diretiva para incluir namespaces, instruções para a página(page directives).
• Usado nas páginas para controlar ou definir as configurações do compilador
(<% @ Control Inherits = "MyParentControl"%>).
• Usado para especificar configurações específicas da página que são diferentes do aplicativo feito pela
global.asax.
<%= %>
• Usado como atalho para <% Response.Write (value)%> e é muito útil para exibir informações server side.
<%: %>
• É o mesmo que <%=, mas a saída é codificada em HTML.
<%# %>
• É uma expressão que informa de ligaçã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 ligadas a dados por meio da marcação de atributo do controle
ou como uma marca separada que gera uma instância 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 ligaçã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 tag 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 no 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 servidor.
• Usado para inserir o conteúdo de um arquivo na página, controle ou arquivo global.
• Útil onde um controle de usuário é um exagero e uma página mestra não pode ser usada.
Há também um bloco de declaração de código, o formulário final do bloco de código incorporado.
Isso é usado para incluir membros adicionais (métodos etc.)
na classe gerada a partir da marcação do ASP.NET.
Eles só foram fornecidos "principalmente para preservar a compatibilidade com versões anteriores da tecnologia ASP"
e não são recomendados para uso.