ASP.NET inline-expressies in de .NET Framework

Dit artikel bevat een inleiding tot de volgende ASP.NET inline-expressies:

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

Oorspronkelijke productversie: .NET Framework
Origineel KB-nummer: 976112

<% ... %> ingesloten codeblokken

Het ingesloten codeblok wordt gebruikt om achterwaartse compatibiliteit met klassieke ASP te behouden. De code in het blok kan programmeerinstructies uitvoeren en functies in de huidige paginaklasse aanroepen tijdens de fase voor paginaweergave.

In het volgende voorbeeld ziet u een ASP.NET pagina met voorbeeldcode van Microsoft Visual Basic .NET in een ingesloten codeblok om de resultaten van een lus weer te geven:

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

Omdat een ingesloten codeblok altijd wordt gemengd met de HTML-bron (HyperText Markup Language), is het moeilijk voor ontwikkelaars om deze te lezen en te onderhouden.

Ga naar Ingesloten codeblokken in ASP.NET Web Forms Pages voor meer informatie over ingesloten codeblokken in ASP.NET webpagina's.

<%= ... %> dat expressie weergeeft

De <%= ... %> weergegeven expressie is een equivalent van het ingesloten codeblok dat alleen de Response.Write(...) -instructie bevat. Dit is de eenvoudigste manier om informatie weer te geven, zoals een enkele tekenreeks, een int-variabele of een constante.

In de volgende voorbeeldcode wordt bijvoorbeeld de huidige tijd weergegeven:

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

Houd er rekening mee dat de weergave-expressie niet kan worden gebruikt in de kenmerken van serverbesturingselementen. Dit komt doordat de .NET Framework de hele expressie rechtstreeks compileert in plaats van de inhoud weer te geven als de waarde voor het kenmerk.

Ga naar Weergeven vanuit ASP.NET voor meer informatie over het weergeven van informatie uit ASP.NET.

<%@ ... %> instructie-expressie

De instructieexpressie is de syntaxis waarmee instellingen worden opgegeven die worden gebruikt door de pagina en door compilers voor gebruikersbeheer wanneer ze ASP.NET webformulierpagina's (.aspx) en gebruikersbeheerbestanden (.ascx) verwerken.

Het ASP.NET-paginaframework ondersteunt de volgende richtlijnen:

Richtlijn Beschrijving
@ Page Hiermee definieert u paginaspecifieke kenmerken die worden gebruikt door de ASP.NET paginaparser en compiler. Kan alleen worden opgenomen in .aspx-bestanden.
Deze instructienaam kan alleen worden gebruikt in ASP.NET webpagina's.
@ Control Definieert besturingselementspecifieke kenmerken die worden gebruikt door de ASP.NET paginaparser en compiler. Kan alleen worden opgenomen in .ascx-bestanden (besturingselementen van gebruikers).
De instructienaam kan alleen worden gebruikt in gebruikersbeheerbestanden.
@ Import Hiermee importeert u expliciet een naamruimte in een pagina of in een gebruikersbeheer.
@ Implements Declaratief geeft aan dat een pagina of een gebruikersbeheer een opgegeven .NET Framework interface implementeert.
@ Register Koppelt aliassen aan naamruimten en aan klassenamen. Hiermee kunnen gebruikersbesturingselementen en aangepaste serverbesturingselementen worden weergegeven wanneer ze worden opgenomen in een aangevraagde pagina of gebruikersbesturingselement.
@ Assembly Koppelt een assembly aan de huidige pagina tijdens de compilatie. Hiermee worden alle klassen en interfaces van de assembly beschikbaar voor gebruik op de pagina.
@ Master Identificeert een ASP.NET basispagina.
@ WebHandler Identificeert een ASP.NET IHttpHandler-pagina.
@ PreviousPageType Biedt een manier om sterk te typen op de vorige pagina zoals toegankelijk via de eigenschap PreviousPage.
@ MasterType Hiermee wordt een klassenaam toegewezen aan de eigenschap Master van een ASP.NET-pagina. Biedt een manier om een sterk getypte verwijzing naar de ASP.NET basispagina te maken.
@ OutputCache Het uitvoercachebeleid van een pagina of van een gebruikersbesturingselement wordt declaratief beheerd.
@ Reference Een pagina- of gebruikersbeheer wordt declaratief gekoppeld aan het huidige pagina- of gebruikersbeheer.

Ga naar Syntaxis van tekstsjabloonrichtlijn voor meer informatie over de syntaxis van de richtlijn.

<%# ... %> expressie voor gegevensbinding

Met de expressie voor gegevensbinding wordt een binding gemaakt tussen een serverbesturingselementeigenschap en een gegevensbron wanneer de methode DataBind van dit serverbesturingselement op de pagina wordt aangeroepen.

In het volgende voorbeeld ziet u hoe u de expressie voor gegevensbinding gebruikt om de tekenreeks van een functie te binden aan de eigenschap Text van een label:

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

Ga naar Syntaxis van gegevensbindingsexpressie voor meer informatie over de syntaxis van de gegevensbindingsexpressie.

<%$ ... %> opbouwfunctie voor expressies

De opbouwfunctie voor expressies wordt gebruikt om waarden van besturingseigenschappen in te stellen op basis van de informatie die is opgenomen in de configuratie- of resourcebestanden van een toepassing. Het volgende voorbeeld is de basissyntaxis van de opbouwfunctie voor expressies:
<%$ Expression Prefix: Expression Value %>

Het dollarteken ($) geeft aan ASP.NET dat de volgende expressie een opbouwfunctie voor expressies is. Het expressievoorvoegsel definieert het type expressie, zoals AppSettings, ConnectionStringsof Resources. Daarnaast kunt u uw eigen opbouwfunctie voor expressies maken en definiƫren. De expressiewaarde die volgt op de dubbele punt (:) is wat ASP.NET daadwerkelijk gebruikt als de waarde van een bepaalde eigenschap.

In de volgende demo ziet u hoe u de opbouwfunctie voor expressies gebruikt om het auteursrecht van een website te verkrijgen van het AppSettings knooppunt in het Web.config-bestand en hoe u de copyrightgegevens instelt als de waarde van de eigenschap Text van Literal.

Het AppSettings knooppunt in Web.config bestand:

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

De opbouwfunctie voor expressies op de pagina ASP.NET webformulier:

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

Ga naar ASP.NET Overzicht van expressies voor meer informatie over ASP.NET expressies.

<%-- ... -- %> opmerkingenblok aan serverzijde

Met het opmerkingenblok op de server kunnen ontwikkelaars codeopmerkingen insluiten op elke locatie van de HTML-bron van ASP.NET webpagina's (behalve in <script> codeblokken). Inhoud tussen de openings- en slottags van het opmerkingenblok op de server wordt niet verwerkt op de server of weergegeven op de resulterende pagina.

In het volgende codevoorbeeld ziet u hoe u het opmerkingenblok aan de serverzijde gebruikt op een ASP.NET 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>

Ga naar Opmerkingen aan serverzijde voor meer informatie over opmerkingen aan de serverzijde.