Home / Programmazione / C# - Asp.NET / Espressioni inline in Asp.NET
Mattepuffo

Espressioni inline in Asp.NET

Espressioni inline in Asp.NET

Asp.NET mette a disposizione diverse espressioni inline che in pratica consentono di eseguire codice direttamente dalla pagina.

In questo articolo vi introduco al loro uso, considerando però che è solo una introduzione.

Vi riporto anche degli esempi, tutti in Visual Basic.

<%...%> incorporamento blocchi di codice

Viene utilizzato per mantenere la compatibilità con le versioni precedenti con ASP classico e può eseguire istruzioni di programmazione e chiamare le funzioni nella classe della pagina corrente durante la fase di rendering della pagina.

<%@ 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>

Il suo uso è sconsigliato perchè di difficile lettura per chi non è il creatore del progetto.

Altre info.

<%=...%> visualizzazione espressione

E' un equivalente del blocco di codice incorporato che contiene solo l'istruzione Response.Write(…).

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

Altre info.

<%@...%> direttiva espressione

Specifica le impostazioni utilizzate dalla pagina e dai compilatori del controllo utente durante l'elaborazione delle pagine Web Form di ASP.NET (aspx) e i file del controllo utente (ascx).

Il Framework di pagine Asp.NET supporta le direttive riportate di seguito:

@ Page Definisce gli attributi specifici della pagina vengono utilizzati dal compilatore e dal parser di pagine ASP.NET. Possono essere inclusi solo nei file aspx.
* Questo nome di direttiva può essere utilizzato solo nelle pagine Web Form di ASP.NET.
@ Controllo Definisce gli attributi specifici del controllo vengono utilizzati dal compilatore e dal parser di pagine ASP.NET. Possono essere inclusi solo nei file ASCX (controlli utente).
* Questo nome di direttiva può essere utilizzato solo nella finestra di dialogo utente controllare i file.
@ 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 alias agli spazi dei nomi e con i nomi di classe. In questo modo i controlli utente e controlli server personalizzati deve essere eseguito il rendering vengono inclusi in una pagina richiesta o un controllo utente.
@ Assembly Collega un assembly alla pagina corrente durante la compilazione. Rende le classi e interfacce tutti dell'assembly disponibili per l'utilizzo nella pagina.
@ Master Identifica una pagina master ASP.NET.
@ WebHandler Identifica una pagina ASP.NET IHttpHandler.
@ PreviousPageType Fornisce un modo per ottenere la tipizzazione forte alla pagina precedente quando vi si accede tramite la proprietà PreviousPage.
@ MasterType Assegna un nome di classe per la proprietà master di una pagina ASP.NET. Fornisce un modo per creare un riferimento fortemente tipizzato alla pagina master ASP.NET.
@ OutputCache Controlla in modo dichiarativo i criteri di una pagina o di un controllo utente di inserimento nella cache di output.
@ Riferimento Collega in modo dichiarativo una pagina o un controllo utente per il controllo di pagina o utente corrente.

Altre info.

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

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.

<%@ 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>

Altre ifno.

<$%...%> generatori espressioni

Il Generatore di espressioni viene utilizzato per impostare i valori delle proprietà del controllo in base alle informazioni contenute in configurazione di un'applicazione o i file di risorse.

La sintassi di base è:

< % $ Espressione Prefix: Espressione Valore % >

Dove ill segno di dollaro ($) indica ad Asp.NET che l'espressione riportata di seguito è un generatore di espressioni.

Il prefisso di espressione definisce il tipo di espressione, ad esempio AppSettings, ConnectionStrings o risorse.

Inoltre, è possibile creare e definire il proprio Generatore di espressioni. Il valore dell'espressione che segue i due punti (:) è ciò che Aap.NET verrà effettivamente utilizzato come valore di una determinata proprietà.

Vediamo come ottenere il copyright dal nodo AppSettings del Web.config.

Nodo AppSettings:

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

Generatore espressioni nel Web Form Asp.NET:

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

Altre info.

<%--...--%> commenti

Il blocco di commenti del lato server consente di incorporare commenti di codice in qualsiasi posizione dell'origine HTML delle pagine Web Form di ASP.NET (tranne all'interno di blocchi di codice <script>).

Qualsiasi contenuto tra i tag di apertura e chiusura del blocco di commenti del lato server non verrà elaborato sul server o non verrà eseguito il rendering nella pagina.

<%@ 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>

Altre info.