ASP.NET espressioni inline in .NET Framework

Questo articolo contiene un'introduzione alle espressioni inline ASP.NET seguenti:

  • <% ... %>
  • <%= ... %>
  • <%@ ... %>
  • <%# ... %>
  • <%$ ... %>
  • <%-- ... --%>

Versione originale del prodotto: .NET Framework
Numero KB originale: 976112

<% ... %> blocchi di codice incorporati

Il blocco di codice incorporato viene usato per mantenere la compatibilità con le versioni precedenti con ASP classico. Il codice nel blocco può eseguire istruzioni di programmazione e chiamare funzioni nella classe di pagina corrente durante la fase di rendering della pagina.

Nell'esempio seguente viene illustrata una pagina ASP.NET con codice .NET di Microsoft Visual Basic di esempio in un blocco di codice incorporato per visualizzare i risultati di un ciclo:

<%@ Page Language="VB" %>
<html>
<body>
    <form id="form1" runat="server">
        <% For i As Integer = 16 To 24 Step 2%>
            <div style="font-size: <% Response.Write(i)%>">
                Hello World<br />
            </div>
        <% Next%>
    </form>
</body>
</html>

Poiché un blocco di codice incorporato viene sempre mescolato con l'origine HTML (HyperText Markup Language), è difficile per gli sviluppatori leggerli e gestirli.

Per altre informazioni sui blocchi di codice incorporati nelle pagine Web ASP.NET, vedere Blocchi di codice incorporati nelle pagine Web Forms ASP.NET.

<%= ... %> visualizzazione dell'espressione

L'espressione <%= ... %> di visualizzazione è un equivalente del blocco di codice incorporato che contiene solo l'istruzione Response.Write(...) . È il modo più semplice per visualizzare informazioni quali una singola stringa, una variabile int o una costante.

Ad esempio, il codice di esempio seguente visualizza l'ora corrente:

<%@ Page Language="VB" %>
<html>
    <body>
        <form id="form1" runat="server">
            <%=DateTime.Now.ToString() %>
        </form>
    </body>
</html>

Tenere presente che l'espressione di visualizzazione non può essere usata negli attributi dei controlli server. Il motivo è che .NET Framework compila direttamente l'intera espressione anziché il contenuto visualizzato come valore dell'attributo.

Per altre informazioni su come visualizzare informazioni da ASP.NET, vedere Visualizzazione da ASP.NET.

<Espressione di direttiva %@ ... %>

L'espressione di direttiva è la sintassi che specifica le impostazioni utilizzate dalla pagina e dai compilatori di controlli utente quando elaborano ASP.NET pagine web form (.aspx) e file di controllo utente (con estensione ascx).

Il framework della pagina ASP.NET supporta le direttive seguenti:

Direttiva Descrizione
@ Page Definisce gli attributi specifici della pagina usati dal compilatore e dal parser di pagine ASP.NET. Può essere incluso solo nei file .aspx.
Questo nome di direttiva può essere utilizzato solo nelle pagine ASP.NET Web Form.
@ Control Definisce gli attributi specifici del controllo usati dal compilatore e dal parser di pagine ASP.NET. Può essere incluso solo nei file ascx (controlli utente).
Il nome della direttiva può essere usato solo nei file di controllo utente.
@ Import Importa in modo esplicito uno spazio dei nomi in una pagina o in un controllo utente.
@ Implements Indica in modo dichiarativo che una pagina o un controllo utente implementa un'interfaccia .NET Framework specificata.
@ Register Associa gli alias agli spazi dei nomi e ai nomi delle classi. Ciò consente il rendering dei controlli utente e dei controlli server personalizzati quando sono inclusi in una pagina o in un controllo utente richiesto.
@ Assembly Collega un assembly alla pagina corrente durante la compilazione. Rende disponibili tutte le classi e le interfacce dell'assembly per l'uso nella pagina.
@ Master Identifica una pagina master ASP.NET.
@ WebHandler Identifica una pagina IHttpHandler ASP.NET.
@ PreviousPageType Consente di ottenere una tipizzazione avanzata rispetto alla pagina precedente, come si accede tramite la proprietà PreviousPage.
@ MasterType Assegna un nome di classe alla proprietà Master di una pagina di ASP.NET. Consente di creare un riferimento fortemente tipizzato alla pagina master ASP.NET.
@ OutputCache Controlla in modo dichiarativo i criteri di memorizzazione nella cache di output di una pagina o di un controllo utente.
@ Reference Collega in modo dichiarativo una pagina o un controllo utente alla pagina o al controllo utente corrente.

Per altre informazioni sulla sintassi delle direttive, vedere Sintassi della direttiva modello di testo.

<%# ... %> espressione di associazione dati

L'espressione di associazione dati crea l'associazione tra una proprietà del controllo server e un'origine dati quando viene chiamato il metodo DataBind del controllo di questo controllo server nella pagina.

Nell'esempio seguente viene illustrato come utilizzare l'espressione di associazione dati per associare la stringa da una funzione alla proprietà Text di un'etichetta:

<%@ Page Language="VB" %>
<script runat="server">
    Protected Function SayHello() As String
        Return "Hello World"
    End Function

    Protected Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs)
        lblHello.DataBind()
    End Sub
</script>
<html>
    <body>
        <form id="form1" runat="server">
            <asp:Label ID="lblHello" runat="server" Text="<%# SayHello%>"></asp:Label>
        </form>
    </body>
</html>

Per altre informazioni sulla sintassi delle espressioni di associazione dati, vedere Sintassi delle espressioni di associazione dati.

<%$ ... %> generatore di espressioni

Il generatore di espressioni viene usato per impostare i valori delle proprietà del controllo in base alle informazioni contenute nei file di risorse o di configurazione di un'applicazione. L'esempio seguente è la sintassi di base del generatore di espressioni:
<%$ Expression Prefix: Expression Value %>

Il simbolo di dollaro ($) indica a ASP.NET che l'espressione seguente è un generatore di espressioni. Il prefisso dell'espressione definisce il tipo di espressione, ad AppSettingsesempio , ConnectionStringso Resources. Inoltre, è possibile creare e definire il proprio generatore di espressioni. Valore dell'espressione che segue i due punti (:) è quello che ASP.NET userà effettivamente come valore di una determinata proprietà.

La demo seguente illustra come usare il generatore di espressioni per ottenere il copyright di un sito Web dal AppSettings nodo nel file Web.config e come impostare le informazioni sul copyright come valore della proprietà Text del valore letterale.

Nodo AppSettings nel file Web.config :

<appSettings>
    <add key="copyright" value="(c) Copyright 2009 WebSiteName.com"/>
</appSettings>

Generatore di espressioni nella pagina ASP.NET Web Form:

<div id="footer">
    <asp:Literal ID="Literal1" runat="server" Text="<%$ AppSettings: copyright %>"></asp:Literal>
</div>

Per altre informazioni sulle espressioni ASP.NET, vedere Panoramica delle espressioni di ASP.NET.

<%-- ... -- %> blocco di commenti sul lato server

Il blocco commenti lato server consente agli sviluppatori di incorporare commenti di codice in qualsiasi posizione dell'origine HTML di ASP.NET pagine Web Form (ad eccezione dei <script> blocchi di codice). Qualsiasi contenuto tra i tag di apertura e chiusura del blocco di commenti lato server non verrà elaborato nel server o sottoposto a rendering nella pagina risultante.

Nell'esempio di codice seguente viene illustrato come usare il blocco di commenti lato server in una pagina ASP.NET:

<%@ Page Language="VB" %>
<script runat="server">
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim strName As String
        strName = Session("userName")
        lblUserName.Text = strName
    End Sub
</script>
<html>
    <body>
        <form id="form1" runat="server">
            <%-- Label for UserName --%>
            <asp:Label ID="lblUserName" runat="server" Text=""></asp:Label>
        </form>
    </body>
</html>

Per altre informazioni sui commenti sul lato server, vedere Commenti sul lato server.