Partager via


ASP.NET expressions inline dans le .NET Framework

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

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

Version du produit d’origine : .NET Framework
Numéro de 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é à la source HTML (HyperText Markup Language), il est difficile pour les développeurs de lire et de les gérer.

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

<%= ... %> d’affichage de l’expression

L’expression <%= ... %> d’affichage est un équivalent du 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 seule chaîne, 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 .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 à partir 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 de formulaire web (.aspx) et les fichiers User Control (.ascx).

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

Directive Description
@ Page Définit des attributs spécifiques à la page utilisés par l’analyseur de page et le compilateur ASP.NET. Ne peut être inclus que dans les fichiers .aspx.
Ce nom de directive ne peut être utilisé que dans ASP.NET pages de formulaire web.
@ Control Définit des attributs spécifiques au contrôle 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 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 aux espaces de noms et aux noms de classes. Ce qui permet aux contrôles utilisateur et aux contrôles serveur personnalisés d’être affichés lorsqu’ils sont inclus dans une page ou un contrôle utilisateur demandé.
@ Assembly Lie un assembly à la page active pendant la compilation. Elle rend toutes les classes et interfaces de l’assembly disponibles pour une utilisation sur la page.
@ Master Identifie une page maître ASP.NET.
@ WebHandler Identifie une page ASP.NET IHttpHandler.
@ PreviousPageType Fournit un moyen d’obtenir une saisie forte sur la page précédente, comme accessible via la propriété PreviousPage.
@ MasterType Attribue 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 maître ASP.NET.
@ 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 active ou au contrôle utilisateur.

Pour plus d’informations sur la syntaxe de directive, consultez la syntaxe de directive du 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 la syntaxe de l’expression de liaison de données.

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

Le générateur d’expressions est utilisé pour définir des valeurs de 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, tel que 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 utilisera réellement comme valeur d’une certaine propriété.

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

Nœud dans le AppSettingsfichier Web.config :

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

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

<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 ASP.NET Vue d’ensemble des expressions.

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

Le bloc de 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 de formulaire web (à l’exception des blocs de <script> code). Tout contenu entre les balises d’ouverture et de fermeture du bloc de commentaires côté serveur ne sera pas traité sur le serveur ou rendu sur la page résultante.

L’exemple de code suivant montre comment utiliser le bloc de 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.