Tag “speciali” di ASP.NET

Qual è il nome ufficiale per i tag “speciali” ASP.NET come questo:

    

Non riesco a capire il nome concettuale o ben noto di questi, quindi ho difficoltà a cercare ulteriori informazioni. Come bonus, qualcuno può darmi una rapida carrellata di tutti i possibili “tag speciali” e cosa fa ognuno di loro (o mi indica una risorsa)?

Il nome ufficiale è ” delimitatori di scripting sul lato server ” o ” Espressioni in linea ASP.NET “. La finestra di dialogo delle impostazioni di evidenziazione della syntax di Visual Studio 2008 chiama questi “HTML Server-Side Script”. I ragazzi Microsoft li chiamano “code pepite” nei loro blog.

  • <%@ %> è una direttiva per le pagine Web ASP.NET . Utilizzato per pagine e controlli per configurare le impostazioni del compilatore di pagina / controllo ( <%@ Control Inherits="MyParentControl" %> ).
    • <%@ %> è anche una direttiva applicativa . Utilizzato per specificare le impostazioni specifiche dell’applicazione per global.asax. Distinto dalle direttive di pagina in quanto utilizza solo un set di tag diverso.
  • <% %> è un blocco di codice (per codice inline) . Una delle 4 forms di Embedded Code Blocks . Utilizzato per includere il codice lato server nel metodo Render() ( <% x = x + 1; %> ) della class generata. Formato: singolo / multilinea o multiplo (ad esempio if/then/else inframmezzato da html) ma non può essere utilizzato per dichiarare funzioni.
  • <%= %> è un blocco di rendering del codice (per espressioni in linea) . Usato come una scorciatoia per <%Response.Write(value)%>
  • <%: %> (non ufficiale un ” Html Encoding Code Block “) è lo stesso del precedente, ma l’output è codificato in HTML.
  • <%# %> è un’espressione di associazione dei dati . Utilizzato per il collegamento a una via (di sola lettura) o bidirezionale (aggiornabile) tramite Eval , Xpath , Bind o espressioni (ad esempio il valore selezionato di un controllo a discesa). Lega le espressioni alle proprietà di controllo associate ai dati tramite il markup dell’attributo del controllo o come tag separato che genera un’istanza DataBoundLiteralControl con il valore sulla sua proprietà Text . Le espressioni vengono valutate da un gestore di eventi DataBinding per il controllo.
  • <%#: %> è un’espressione di associazione dati codificata HTML (novità in ASP.NET 4.5). Combina le funzionalità di <%# %> e <%: %> .
  • <%$ %> è un generatore di espressioni ASP.NET . Utilizzato per il binding espressione runtime per le proprietà di controllo tramite gli attributi del tag del server. Utilizzato con AppSettings , ConnectionStrings o Resources (o la propria estensione personalizzata , ad esempio per utilizzare le proprietà code-behind). Questi incarichi vengono aggiunti al metodo OnInit() della class generata.
  • <%-- --%> è un commento lato server . Utilizzato per escludere i contenuti dalla compilazione (e quindi genererà errori se si fa riferimento a un controllo commentato in code-behind). A differenza dei commenti HTML, i contenuti non saranno inclusi nell’output.
  • è una direttiva di inclusione lato server . Utilizzato per inserire il contenuto di un file nella pagina, controllo o file globale. Utile dove un controllo utente è eccessivo e non è ansible utilizzare una pagina master.

Esiste anche un blocco di dichiarazione del codice , il modulo finale del blocco di codice incorporato.

  

Questo è usato per includere membri aggiuntivi (metodi, ecc.) Alla class generata dal markup ASP.NET. Questi sono stati sempre forniti “principalmente per preservare la retrocompatibilità con la vecchia tecnologia ASP” e non sono raccomandati per l’uso.

Nessuna risposta per la domanda nome, ma la pagina MSDN “Sintassi pagina ASP.NET” è piuttosto buona (o meglio, questa è la pagina di livello superiore, le pagine sottostanti danno più informazioni).

EDIT: avevo già pensato che <%# ... %> non era incluso nella lista, ma ovviamente lo è, in Data-Binding Expressions. Doh.

Ho sempre trovato questa pagina di QuickStart molto utile, ogni volta che ho dei dubbi sulla syntax lato server. Descrive 8 diversi stili di markup e fornisce esempi illustrativi di ciascuno, oltre a spiegare i pro e i contro.

Tuttavia, non menziona la direttiva del livello di pagina, che IIRC è dettagliato in altre parti del Quickstart.

Naturalmente, questo è rilevante per ASP.NET 2.0.

I ragazzi Microsoft li chiamano “pepite” o “pepite di codice” a volte.

Ho anche sentito queste chiamate “V stings”, incluso sul podcast StackOverflow.