Partager via


Vue d'ensemble des expressions ASP.NET

Mise à jour : novembre 2007

Les expressions ASP.NET constituent des propriétés de contrôle définies de manière déclarative selon les informations évaluées au moment de l'exécution. Par exemple, vous pouvez utiliser des expressions pour définir une propriété avec des valeurs fondées sur des chaînes de connexion, des paramètres d'application et autres valeurs contenues dans les fichiers de configuration et de ressources d'une application. Les expressions sont évaluées au moment de l'exécution lorsque les éléments déclaratifs de la page sont analysés, et la valeur représentée par l'expression est substituée à la syntaxe de l'expression. (Comme les expressions sont évaluées au moment de l'analyse, vous ne pouvez pas créer dynamiquement des expressions dans le code.)

Les expressions sont couramment utilisées dans les contrôles de source de données pour référencer une chaîne de connexion. Au lieu d'inclure directement la chaîne de connexion dans le contrôle de source de données comme une valeur de propriété, vous pouvez utiliser une expression qui spécifie l'emplacement de la chaîne de connexion dans le fichier de configuration. Au moment de l'exécution, l'expression est résolue en lisant la chaîne de connexion du fichier de configuration. Vous pouvez utiliser des expressions pour tout paramètre de propriété que vous souhaitez résoudre au moment de l'exécution, plutôt que de le définir comme valeur statique.

L'utilisation des expressions vous aide à gérer votre application de diverses manières :

  • Vous pouvez réduire le code dans votre application en référençant les informations dynamiques de façon déclarative. Vous n'avez pas ainsi à écrire le code pour définir les valeurs de propriété au moment de l'exécution.

  • Vous pouvez réutiliser les mêmes paramètres dans plusieurs contrôles. Par exemple, si vous stockez une chaîne de connexion dans le fichier Web.config, puis utilisez des expressions pour référencer la chaîne de connexion dans des pages, vous modifiez la chaîne de connexion dans un emplacement central plutôt que de la modifier dans chaque contrôle qui utilise la chaîne de connexion.

  • Vous pouvez stocker des données sensibles telles que des informations d'identification de chaîne de connexion (ou d'autres données d'application) dans le fichier Web.config puis les chiffrer.

  • Si vous travaillez avec un concepteur visuel tel que Visual Studio, vous pouvez tirer parti d'outils du concepteur qui peuvent vous aider à générer des expressions.

Elles sont également extensibles pour vous permettre de définir votre propre syntaxe d'expression. Vous pouvez créer ensuite des expressions qui appellent votre gestionnaire d'expression personnalisé pour retourner une valeur qui utilise votre logique personnalisée.

Syntaxe de base

La syntaxe de base d'une expression ASP.NET est la suivante :

<%$ expressionPrefix: expressionValue %>

Le signe dollar ($) indique à ASP.NET qu'une expression suit. Le préfixe d'expression définit le type d'expression, par exemple AppSettings, ConnectionStrings ou Resources. L'expression après les deux-points (:) correspond à la valeur réelle qu'ASP.NET résoudra.

La syntaxe d'expression n'est pas liée à un langage .NET spécifique. Vous pouvez utiliser la même syntaxe d'expression, que vous utilisiez Visual Basic, C# ou tout autre langage de programmation dans vos pages ASP.NET.

Chaînes de connexion

Les expressions sont couramment utilisées pour définir la propriété de type chaîne de connexion d'un contrôle, par exemple le contrôle SqlDataSource, en fonction de la valeur d'une chaîne de connexion stockée dans le fichier Web.config. Par exemple, le contrôle SqlDataSource suivant peut contenir un attribut de chaîne de connexion :

<asp:SqlDataSource ID="SqlDataSource1" Runat="server" 
    SelectCommand="SELECT * FROM [Employees]"
    ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString1 %>">
</asp:SqlDataSource>

Le code mis en évidence affiche une expression, qui est contenue entre guillemets et dénote la valeur de l'attribut. L'expression référence une chaîne de connexion nommée "NorthwindConnectionString1" définie dans l'élément connectionStrings du fichier Web.config. L'élément connectionStrings peut se présenter de la manière suivante :

<configuration>
  <connectionStrings>
    <add name="NorthwindConnectionString1" 
      connectionString="Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;"
      providerName="System.Data.SqlClient" />
  </connectionStrings>
    <!-- additional settings -->
</configuration>
Remarque :

Il est recommandé pour la sécurité ajoutée de chiffrer la section du fichier de configuration qui contient les chaînes de connexion. Pour plus d'informations, consultez Chiffrement des informations de configuration à l'aide de la configuration protégée. Dans l'exemple précédent, la section configuration du fichier de configuration est affichée de façon non chiffrée pour des raisons de clarté.

Chaque chaîne de connexion reçoit un nom, que vous pouvez utiliser dans une expression pour la référencer dans vos pages ASP.NET.

Paramètres d'application

En plus d'utiliser des expressions pour les chaînes de connexion, vous pouvez en employer pour référencer les paramètres d'application définis dans un fichier de configuration accessible au site Web. Par exemple, vous avez peut-être utilisé fréquemment des chaînes, comme le message de copyright de votre site, stocké dans la section appSettings de votre fichier Web.config et présentant l'aspect suivant :

<appSettings>
  <add key="copyright" value="(c)Copyright 2004 Northwind Traders"/>
</appSettings>

Dans vos pages ASP.NET, vous pouvez référencer la valeur en utilisant une expression semblable à celle qui suit :

<%$ AppSettings: copyright %>

Cela vous permet de gérer les éléments fréquemment cités dans le fichier de configuration au lieu de modifier le même texte sur chaque page.

Affichage du contenu statique à l'aide d'expressions

Pour utiliser une expression sous forme de valeur statique sur votre page ou contrôle, vous utilisez une expression dans le cadre d'un contrôle serveur ASP.NET. Une stratégie classique consiste à ajouter un contrôle Literal et à définir sa propriété Text avec une expression. Par exemple, pour insérer un texte de copyright au bas de chaque page, vous pouvez utiliser les éléments suivants :

<p align="center">

<asp:Literal text="<%$ AppSettings: copyright %>"/>

</p>

Fichiers de ressources

Outre l'affichage des valeurs contenues dans un fichier de configuration, vous pouvez afficher des valeurs stockées dans les fichiers de ressources (.resx ou .resource). Vous utilisez généralement les fichiers de ressources pour stocker des informations pour une langue spécifique ou une combinaison de langue et de culture. En utilisant les fichiers de ressources et les expressions, vous pouvez créer une page Web qui affiche le texte dans différents langages en fonction des valeurs déterminées au moment de l'exécution, comme les paramètres de langage et de culture rapportés par le navigateur, ou dans un langage explicite choisi par l'utilisateur.

Par exemple, lors de la localisation automatique du contenu, vous pouvez définir la propriété Text d'un contrôle serveur à l'aide d'une syntaxe d'expression, comme dans cet exemple :

<asp:Label id="label1"  text="<%$ Resources: Messages, ThankYouLabel %>" />

Dans le dossier App_GlobalResources, vous pourriez avoir des fichiers de ressources nommés Messages.resx, Messages.es.resx, Message.de.resx, etc. – fichier de ressources Messages pour chaque langue que vous souhaitez prendre en charge. Le fichier Messages.resx représente la ressource neutre (secours) qui est utilisée si aucune culture explicite n'est définie. Le fichier Messages.resx pourrait contenir l'entrée suivante :

<data name="ThankYouLabel"><value>Thank you very much!</value></data>

Vous auriez des entrées similaires dans d'autres fichiers de ressources, avec les chaînes traduites de façon appropriée pour la langue représentée par ce fichier de ressources. Pour plus d'informations sur l'utilisation des expressions pour les ressources et la localisation, consultez Vue d'ensemble des ressources des pages Web ASP.NET.

Voir aussi

Concepts

Vue d'ensemble de la syntaxe des pages Web ASP.NET

Autres ressources

Syntaxe du fichier de configuration ASP.NET