2010-11-21 8 views
22

Capisco cosa significano nel markup delle pagine di aspx ... ma non conosco il potere completo per cui possono essere utilizzati o il nome per denotare questi direttive speciali.<% %> in ASP.NET (blocchi di codice incorporati)

Esempio:

posso inserire istruzioni condizionali come if o switch

ho visto e utilizzato per associare i dati da un insieme di dati per esempio

Qualsiasi ingresso è molto apprezzato

+4

Se il vostro fare Asp.net Webforms, vorrei evitare di utilizzarla troppo. È una presentazione migliore e più facile eseguire il debug per inserire il codice nel codice, invece della porzione html. – Lareau

+0

@ Lareau concordato. Mi interessava solo la flessibilità di loro. –

risposta

25

Questi sono codici Etichette block.

E sì si può avvolgere il codice lato server in questi tag (esempi in C#)

<% if (x = y) { 
    } else { 
    } 
%> 

O

<% if (x = y) {%> 
    Write this HTML 
<% } else {%> 
    Write this html 
<% }%> 

C'è anche

Questa <%=SomeVar %> Quale sarà fuori messo somevar in HTML

+0

molto informativo e grazie per gli esempi! –

-1

Sì, tali simboli indicano al server analizzando la pagina che il codice all'interno di tali tag deve essere interpretato come codice e non come HTML.

Quindi, per rispondere alle altre domande, è possibile utilizzare i condizionali e la maggior parte delle altre funzioni di programmazione supportate dal server.

Partenza un breve resoconto di ASP: http://www.w3schools.com/asp/default.asp

8

La documentazione MSDN li chiama embedded code blocks. Puoi inserire praticamente tutti i codici che inserirai nei file code-behind e il server li eseguirà prima di servire le tue pagine ai browser.

Directive è il nome assegnato a un particolare tipo di blocco di codice, il più comunemente visto nella parte superiore delle pagine ASP.NET per fornire al compilatore informazioni sulle proprie pagine ASP.NET. Sono delimitati da <%@ e %>.

La lingua dei blocchi di codice è la stessa specificata nel blocco di direttiva. Un esempio veloce:

<%@ Page Language="C#" %> 
<!DOCTYPE html> 
<html> 
    <body> 
    <p><% string hello = "Hello world!"; Response.Write(hello); %></p> 
    <ol> 
    <% for (int i = 1; i <= 5; ++i) { %> 
     <li><% Response.Write("Item #" + i); %></li> 
    <% } %> 
    </ol> 
    </body> 
</html> 
+0

grazie per le vostre risposte. Ciò contribuirà a ulteriori ricerche su diverse forme di blocchi di codice incorporati. –

0

Quando il server riceve una richiesta per una pagina ASPX, genera una classe in memoria che eredita da Page (o qualunque classe base specificata). La classe ereditata traduce il markup "normale" in chiamate statiche Response.Write(), <%...%> in codice equivalente ein Response.Write(someExpression). Per il precedente blocco di codice, deve essere accettato qualsiasi C# (o VB) valido; per quest'ultimo, il codice incorporato deve essere una singola espressione (qualcosa che è possibile assegnare a una variabile.

39

Here (or here - in case it moves again) è un post che ho trovato e nascosto un po 'di tempo fa elencando tutti i diversi tag lato server in linea con esempi.Ci sono sette:

  1. <%...%> piste codice normale
  2. <%=...%> è equivalente a Response.Write()
  3. <%#...%> viene utilizzato per le espressioni di associazione dati
  4. <%$...%> restituisce il valore di espressione, e può essere utilizzato nei parametri (nota: le espressioni non sono codice - vedere here)
  5. <%@...%> è per le direttive di pagina, in genere nella parte superiore del file ASPX
  6. .515.053.691,36321 milioni
  7. <%--...--%> è per i commenti
  8. <%:...%> è uguale a <%= tranne che HTML-codifica il valore
+6

Questo link sembra morto ma [l'articolo MSDN] (https://support.microsoft.com/en-us/kb/976112) da [questa risposta] (http://stackoverflow.com/a/3812341/761771) è abbastanza buono – Nate

+1

ciò che è sfortunato è che l'articolo MSDN elenca '<%@ ... %>' due volte nell'introduzione, ma non ha alcuna informazione sul '<%: ... %>' tag del server, che è quello che stavo cercando ... Ecco un altro link da verificare : https://weblogs.asp.net/ahmedmoosa/embedded-code-and-inline-server-tags – Adam

Problemi correlati