ASP.NET expressions inline dans le .NET Framework

Cet article contient une introduction aux expressions inline ASP.NET suivantes :

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

Version d’origine du produit : .NET Framework
Numéro de la base de connaissances d’origine : 976112

<% ... %> blocs de code incorporés

Le bloc de code incorporé est utilisé pour préserver la compatibilité descendante avec asp classique. Le code du bloc peut exécuter des instructions de programmation et appeler des fonctions dans la classe de page active pendant la phase de rendu de page.

L’exemple suivant illustre une page ASP.NET qui contient un exemple de code Microsoft Visual Basic .NET dans un bloc de code incorporé pour afficher les résultats d’une boucle :

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

Étant donné qu’un bloc de code incorporé est toujours mélangé avec la source HTML (HyperText Markup Language), il est difficile pour les développeurs de les lire et de les gérer.

Pour plus d’informations sur les blocs de code incorporés dans ASP.NET pages Web, consultez Blocs de code incorporés dans ASP.NET Web Forms Pages.

<%= ... %> affichant l’expression

L’expression <%= ... %> d’affichage est équivalente au bloc de code incorporé qui contient uniquement l’instruction Response.Write(...) . Il s’agit du moyen le plus simple d’afficher des informations telles qu’une chaîne unique, une variable int ou une constante.

Par exemple, l’exemple de code suivant affiche l’heure actuelle :

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

N’oubliez pas que l’expression d’affichage ne peut pas être utilisée dans les attributs des contrôles serveur. Cela est dû au fait que le .NET Framework compile directement l’expression entière au lieu de l’affichage du contenu comme valeur de l’attribut .

Pour plus d’informations sur l’affichage des informations de ASP.NET, consultez Affichage à partir de ASP.NET.

<%@ ... %> expression de directive

L’expression de directive est la syntaxe qui spécifie les paramètres utilisés par la page et par les compilateurs de contrôle utilisateur lorsqu’ils traitent ASP.NET pages Web Form (.aspx) et les fichiers contrôle utilisateur (.ascx).

L’infrastructure de page ASP.NET prend en charge les directives suivantes :

Directive Description
@ Page Définit les attributs spécifiques à la page qui sont utilisés par l’analyseur de page et le compilateur ASP.NET. Peut être inclus uniquement dans les fichiers .aspx.
Ce nom de directive ne peut être utilisé que dans ASP.NET pages Web Form.
@ Control Définit les attributs spécifiques au contrôle qui sont utilisés par l’analyseur de page et le compilateur ASP.NET. Peut être inclus uniquement dans les fichiers .ascx (contrôles utilisateur).
Le nom de la directive ne peut être utilisé que dans les fichiers de contrôle utilisateur.
@ Import Importe explicitement un espace de noms dans une page ou dans un contrôle utilisateur.
@ Implements Indique de manière déclarative qu’une page ou un contrôle utilisateur implémente une interface .NET Framework spécifiée.
@ Register Associe des alias à des espaces de noms et à des noms de classe. Ce qui permet de rendre les contrôles utilisateur et les contrôles serveur personnalisés lorsqu’ils sont inclus dans une page ou un contrôle utilisateur demandé.
@ Assembly Lie un assembly à la page active pendant la compilation. Il rend toutes les classes et interfaces de l’assembly disponibles pour une utilisation sur la page.
@ Master Identifie une page ASP.NET master.
@ WebHandler Identifie une page IHttpHandler ASP.NET.
@ PreviousPageType Fournit un moyen d’obtenir une saisie forte sur la page précédente, comme accessible via la propriété PreviousPage.
@ MasterType Affecte un nom de classe à la propriété Master d’une page ASP.NET. Permet de créer une référence fortement typée à la page ASP.NET master.
@ OutputCache Contrôle de manière déclarative les stratégies de mise en cache de sortie d’une page ou d’un contrôle utilisateur.
@ Reference Lie de manière déclarative une page ou un contrôle utilisateur à la page ou au contrôle utilisateur actif.

Pour plus d’informations sur la syntaxe de directive, consultez Syntaxe de directive de modèle de texte.

<%# ... %> expression de liaison de données

L’expression de liaison de données crée une liaison entre une propriété de contrôle serveur et une source de données lorsque la méthode DataBind du contrôle de ce contrôle serveur est appelée sur la page.

L’exemple suivant montre comment utiliser l’expression de liaison de données pour lier la chaîne d’une fonction à la propriété Text d’une étiquette :

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

Pour plus d’informations sur la syntaxe d’expression de liaison de données, consultez Syntaxe des expressions de liaison de données.

<%$ ... %> générateur d’expressions

Le générateur d’expressions est utilisé pour définir les valeurs des propriétés de contrôle en fonction des informations contenues dans les fichiers de configuration ou de ressources d’une application. L’exemple suivant est la syntaxe de base du générateur d’expressions :
<%$ Expression Prefix: Expression Value %>

Le signe dollar ($) indique à ASP.NET que l’expression suivante est un générateur d’expressions. Le préfixe d’expression définit le type d’expression, par exemple AppSettings, ConnectionStringsou Resources. En outre, vous pouvez créer et définir votre propre générateur d’expressions. Valeur d’expression qui suit le signe deux-points (:) est ce que ASP.NET utiliserez réellement comme valeur d’une certaine propriété.

La démonstration suivante montre comment utiliser le générateur d’expressions pour obtenir les droits d’auteur d’un site Web à partir du AppSettings nœud dans le fichier Web.config et comment définir les informations de copyright comme valeur de la propriété Texte du littéral.

Nœud AppSettings dans Web.config fichier :

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

Générateur d’expressions dans la page formulaire web ASP.NET :

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

Pour plus d’informations sur les expressions ASP.NET, consultez vue d’ensemble des expressions ASP.NET.

<%-- ... -- %> bloc de commentaires côté serveur

Le bloc commentaires côté serveur permet aux développeurs d’incorporer des commentaires de code à n’importe quel emplacement de la source HTML de ASP.NET pages Web Form (à l’exception des blocs de <script> code). Tout contenu entre les balises d’ouverture et de fermeture du bloc de commentaires côté serveur n’est pas traité sur le serveur ni affiché sur la page résultante.

L’exemple de code suivant montre comment utiliser le bloc commentaires côté serveur dans une page 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>

Pour plus d’informations sur les commentaires côté serveur, consultez Commentaires côté serveur.