Partager via


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

Mise à jour : novembre 2007

Les pages Web ASP.NET sont créées de manière comparable aux pages Web HTML statiques (des pages qui n'incluent pas de traitement serveur), mais elles comprennent des éléments supplémentaires qu'ASP.NET reconnaît et traite lorsque la page s'exécute. Les caractéristiques qui distinguent les pages Web ASP.NET des pages HTML statiques (ou autre) sont les suivantes :

  • Une extension de nom de fichier en .aspx au lieu de .htm, .html ou autre. L'extension de nom de fichier .aspx déclenche le traitement de la page par ASP.NET.

    Remarque :

    Le mappage des extensions de nom de fichier avec ASP.NET s'effectue dans les Services Internet (IIS). Par défaut, les pages .aspx sont exécutées par ASP.NET, ce qui n'est pas le cas des pages .htm et .html.

  • Une directive @ Page facultative ou une autre directive, en fonction du type de page que vous créez.

  • Un élément form correctement configuré pour l'ASP.NET. L'élément form n'est requis que si la page contient des contrôles dont vous souhaitez utiliser les valeurs pendant le traitement de la page.

  • Des contrôles serveur Web.

  • Du code serveur, si vous ajoutez votre propre code à la page.

    Remarque :

    Si vous souhaitez que vos pages se conforment aux standards XHTML, vous devez y inclure des éléments supplémentaires, par exemple un élément DOCTYPE. Pour plus d'informations, consultez ASP.NET et XHTML.

Les sections suivantes décrivent plus en détail chacun de ces éléments.

Vous pouvez renommer une page HTML en lui donnant l'extension de nom de fichier .aspx. Elle s'exécutera alors comme une page Web ASP.NET. Toutefois, si une page n'implique pas de traitement serveur, vous n'avez pas besoin de lui ajouter d'extension de nom de fichier .aspx. En effet, cela alourdirait le traitement de la page.

Exemple de page Web ASP.NET

L'exemple de code suivant montre une page qui inclut les éléments de base constituant une page Web ASP.NET. La page contient du texte statique tel qu'il pourrait figurer dans une page HTML, ainsi que les éléments spécifiques à ASP.NET, lesquels apparaissent en surbrillance.

Remarque :

Pour plus de clarté, cette page d'exemple n'est pas configurée de façon à être conforme XHTML. Pour plus d'informations, consultez ASP.NET et XHTML.

Note de sécurité :

Cette page d'exemple contient une zone de texte qui accepte l'entrée d'utilisateur, ce qui constitue une menace éventuelle pour la sécurité. Par défaut, les pages Web ASP.NET vérifient que les entrées d'utilisateur n'incluent pas de script ou d'éléments HTML. Pour plus d'informations, consultez Vue d'ensemble des attaques de script.

<%@ Page Language="VB" %>
<html>
<script >    Sub Button1_Click(ByVal sender As Object, _        ByVal e As System.EventArgs)        Label1.Text = "Welcome, " & TextBox1.Text    End Sub</script>
<head >
  <title>Basic ASP.NET Web Page</title>
</head>
<body>
  <form id="form1" >
    <h1>Welcome to ASP.NET</h1>
    <p>Type your name and click the button.</p>
    <p>
      <asp:TextBox ID="TextBox1" ></asp:TextBox><asp:Button ID="Button1"  Text="Click" OnClick="Button1_Click" />
    </p>
    <p>
      <asp:Label ID="Label1" ></asp:Label>
    </p>
  </form>
</body>
</html>
<%@ Page Language="C#" %>
<html>
<script >Void Button1_Click(object sender, System.EventArgs e) {    Label1.Text = ("Welcome, " + TextBox1.Text);}</script>
<head >
  <title>Basic ASP.NET Web Page</title>
</head>
<body>
  <form id="form1" >
    <h1>Welcome to ASP.NET</h1>
    <p>Type your name and click the button.</p>
    <p>
      <asp:TextBox ID="TextBox1" ></asp:TextBox>      <asp:Button ID="Button1"          Text="Click" OnClick="Button1_Click" />
    </p>
    <p>
      <asp:Label ID="Label1" ></asp:Label>
    </p>
  </form>
</body>
</html>

Directives @

Les pages ASP.NET contiennent habituellement des directives qui vous permettent de spécifier pour elles des propriétés et des informations de configuration. Ces directives servent d'instructions à ASP.NET pour savoir comment traiter la page, mais elles ne sont pas rendues dans le balisage transmis au navigateur.

La directive la plus couramment utilisée est la directive @ Page, qui vous permet de spécifier un grand nombre d'options de configuration pour la page, notamment :

  • Le langage de programmation serveur pour le code de la page.

  • S'il s'agit d'une page qui contient directement le code serveur, appelée page à fichier unique, ou d'une page dont le code se trouve dans un fichier de classe distincte, auquel cas c'est une page code-behind. Dans l'exemple précédent, la page est une page à fichier unique : le code est situé directement dans la page et la directive @ Page n'inclut pas d'information sur les fichiers de classe liés. Pour plus d'informations, consultez la section « Code serveur », plus loin dans cette rubrique, et Modèle de code des pages Web ASP.NET.

  • Options de débogage et de traçage.

  • S'il s'agit d'une page ayant une page maître associée et devant donc être traitée comme une page de contenu.

Si vous n'incluez pas de directive @ Page dans la page, ou si la directive n'inclut pas de paramètre spécifique, les paramètres sont hérités du fichier de configuration de l'application Web (le fichier Web.config) ou du fichier de configuration du site (le fichier Machine.config).

En plus d'inclure une directive @ Page, vous pouvez inclure d'autres directives qui prennent en charge des options supplémentaires spécifiques à la page. Il existe d'autres directives courantes, dont les suivantes :

  • @ Import   Cette directive vous permet de spécifier les espaces de noms que vous souhaitez référencer dans votre code.

  • @ OutputCache   Cette directive vous permet de spécifier la mise en cache de la page, ainsi que les paramètres indiquant le moment et la durée de la mise en cache.

  • @ Implements   Cette directive vous permet de spécifier l'implémentation d'une interface .NET pour la page.

  • @ Register   Cette directive vous permet d'enregistrer des contrôles supplémentaires pour pouvoir les utiliser dans la page. La directive @ Register déclare le préfixe de balise du contrôle et l'emplacement de l'assembly du contrôle. Vous devez l'utiliser si vous souhaitez ajouter des contrôles utilisateur ou des contrôles ASP.NET personnalisés à une page.

Certains types de fichiers ASP.NET utilisent une directive autre que @ Page. Par exemple, les pages maîtres ASP.NET utilisent une directive @ Master et les contrôles utilisateur ASP.NET une directive @ Control. Chaque directive vous permet de spécifier des options différentes convenant au fichier concerné.

Pour plus d'informations, consultez Vue d'ensemble des pages maîtres ASP.NET et Contrôles utilisateur ASP.NET.

Éléments Form

Si votre page comprend des contrôles qui autorisent les utilisateurs à interagir avec la page et à l'envoyer, elle doit inclure un élément form. Vous pouvez utiliser l'élément form HTML standard, mais certaines règles doivent être observées. L'utilisation de l'élément form obéit aux règles suivantes :

  • La page ne peut contenir qu'un seul élément form.

  • L'élément form doit contenir l'attribut runat, dont la valeur doit être server. Cet attribut vous permet de faire référence par programme au formulaire et aux contrôles de la page dans le code serveur.

  • Les contrôles serveur susceptibles d'exécuter une publication doivent être intégrés à l'élément form.

  • La balise d'ouverture ne doit pas contenir d'attribut action. ASP.NET définit ces attributs dynamiquement lorsque la page est traitée, en substituant tous vos paramétrages éventuels.

Contrôles serveur Web

Dans la plupart des pages ASP.NET, vous ajouterez des contrôles autorisant l'utilisateur à interagir avec la page, notamment des boutons, des zones de texte, des listes, etc. Ces contrôles serveur Web sont semblables aux boutons HTML et aux éléments input. Ils sont néanmoins traités sur le serveur, ce qui vous permet d'utiliser le code serveur pour définir leurs propriétés. Ces contrôles déclenchent également des événements que vous pouvez gérer dans le code serveur.

Les contrôles serveur utilisent une syntaxe spéciale qu'ASP.NET reconnaît lorsque la page s'exécute. L'exemple de code suivant montre quelques contrôles serveur Web classiques :

Note de sécurité :

Un TextBox accepte l'entrée d'utilisateur, qui constitue une menace de sécurité potentielle. Par défaut, les pages Web ASP.NET vérifient que les entrées d'utilisateur n'incluent pas de script ou d'éléments HTML. Pour plus d'informations, consultez Vue d'ensemble des attaques de script.

<asp:TextBox ID="TextBox1" ></asp:TextBox>
<asp:Button ID="Button1"  
    Text="Click" OnClick="Button1_Click" />
<asp:TextBox ID="TextBox1" ></asp:TextBox>
<asp:Button ID="Button1"  
    Text="Click" OnClick="Button1_Click" />

Le nom de balise des contrôles serveur ASP.NET commence par un préfixe (en l'occurrence, asp:). Le préfixe peut être différent si le contrôle ne fait pas partie du .NET Framework. Les contrôles serveur ASP.NET incluent également l'attribut et, éventuellement, un ID que vous pouvez utiliser pour référencer le contrôle dans le code serveur.

Lorsque la page s'exécute, elle identifie les contrôles serveur et exécute le code associé à ces contrôles. De nombreux contrôles rendent du balisage HTML ou d'autres balisages dans la page. Par exemple, le contrôle asp:textbox rend dans une page un élément input ayant l'attribut type="text". Il n'y a toutefois pas nécessairement de correspondance un à un entre un contrôle serveur Web et un élément HTML. Par exemple, le contrôle asp:calendar rend un tableau HTML. Certains contrôles ne rendent rien au navigateur. Au lieu de cela, ils ne sont traités que sur le serveur et fournissent des informations à d'autres contrôles.

Éléments HTML comme contrôles serveur

Au lieu, ou en plus, de l'utilisation de contrôles serveur ASP.NET, vous pouvez utiliser des éléments HTML ordinaires comme contrôles serveur. Vous pouvez ajouter l'attribut et un attribut ID à n'importe quel élément HTML de la page. Lorsque la page s'exécute, ASP.NET identifie l'élément comme étant un contrôle serveur et le rend disponible pour le code serveur. Par exemple, vous pouvez ajouter les éléments requis à un élément body HTML, comme dans l'exemple de code suivant.

<body  id="body">

Vous pouvez ensuite référencer l'élément body dans le code serveur - par exemple, pour définir la couleur d'arrière-plan du corps au moment de l'exécution, en réaction à une entrée d'utilisateur ou aux informations d'une base de données.

Pour plus d'informations, consultez Vue d'ensemble des contrôles serveur Web ASP.NET.

Code serveur

La plupart des pages ASP.NET comprennent du code qui s'exécute sur le serveur lorsque la page est traitée. ASP.NET prend en charge de nombreux langages, dont C#, Visual Basic, J#, Jscript et d'autres encore.

ASP.NET prend en charge deux modèles servant à écrire le code serveur d'une page Web. Dans le modèle à fichier unique, le code de la page se trouve dans un élément script, dans lequel la balise d'ouverture comprend l'attribut . L'exemple précédent de cette rubrique montre le modèle à fichier unique.

Vous pouvez aussi créer le code de la page dans un fichier de classe distinct. Ce modèle est connu sous le nom de modèle code-behind. Dans ce cas de figure, la page Web ASP.NET ne contient en général aucun code serveur. À la place, la directive @ Page comprend des informations qui lient la page .aspx au fichier code-behind associé. L'exemple de code suivant montre une directive @ Page classique destinée à une page à fichier code-behind.

<%@ Page Language="VB" CodeFile="Default.aspx.vb" Inherits="Default" %>
<%@ Page Language="C#" CodeFile="Default.aspx.cs" Inherits="Default" %>

L'attribut CodeFile spécifie le nom du fichier de classe distinct, et l'attribut Inherits spécifie le nom de la classe dans le fichier code-behind qui correspond à la page.

Pour plus d'informations, consultez Modèle de code des pages Web ASP.NET.

Remarque :

Les pages Web ASP.NET peuvent également comprendre des scripts clients qui s'exécutent dans le navigateur en réaction à des événements côté client. Une page ASP.NET peut inclure en même temps du script client et du code serveur. Pour plus d'informations, consultez Script client dans les pages Web ASP.NET.

Voir aussi

Concepts

Vue d'ensemble des pages Web ASP.NET

Introduction aux pages Web ASP.NET

Vue d'ensemble des expressions ASP.NET

Autres ressources

Syntaxe du fichier de configuration ASP.NET

Programmation de pages Web ASP.NET