Partager via


Vue d’ensemble du modèle code-behind ASP.NET

Cet article fournit une brève vue d’ensemble du code en ligne et du modèle Code-behind dans ASP.NET.

Version du produit d’origine : ASP.NET
Numéro de base de connaissances d’origine : 303247

Résumé

Cet article fait référence à l’espace de noms System.Web.UIde bibliothèque de classes Microsoft .NET Framework.

ASP.NET prend en charge deux méthodes pour créer des pages :

  • Code en ligne
  • Code-behind

Code en ligne

Le code en ligne est du code incorporé directement dans la page ASP.NET. Le code suivant représente un exemple de page ASP.NET qui inclut du code en ligne :

Myinlinecode.aspx

<%@ Language=C# %>
<HTML>
    <script runat="server" language="C#">
        void MyButton_OnClick(Object sender, EventArgs e)
        {
            MyLabel.Text = MyTextbox.Text.ToString();
        }
    </script>
    <body>
        <form id="MyForm" runat="server">
            <asp:textbox id="MyTextbox" text="Hello World" runat="server"></asp:textbox>
            <asp:button id="MyButton" text="Echo Input" OnClick="MyButton_OnClick" runat="server"></asp:button>
            <asp:label id="MyLabel" runat="server"></asp:label>
        </form>
    </body>
</HTML>

Code-behind

Code-behind fait référence au code de votre page ASP.NET contenue dans un fichier de classe distinct. Cela permet de séparer votre code HTML de votre logique de présentation. L’exemple suivant illustre une page code-behind ASP.NET :

  • MyCodebehind.aspx

    <%@ Language="C#" Inherits="MyStuff.MyClass" %>
    <HTML>
        <body>
            <form id="MyForm" runat="server">
                <asp:textbox id="MyTextBox" text="Hello World" runat="server"></asp:textbox>
                <asp:button id="MyButton" text="Echo Input" Onclick="MyButton_Click" runat="server"></asp:button>
                <asp:label id="MyLabel" runat="server" />
            </form>
        </body>
    </HTML>
    
  • Mycodebehind.cs

    using System;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    namespace MyStuff
    {
        public class MyClass : Page
        {
            protected System.Web.UI.WebControls.Label MyLabel;
            protected System.Web.UI.WebControls.Button MyButton;
            protected System.Web.UI.WebControls.TextBox MyTextBox;
    
            public void MyButton_Click(Object sender, EventArgs e)
            {
                MyLabel.Text = MyTextBox.Text.ToString();
            }
        }
    }
    

Dans l’exemple précédent, vous pouvez utiliser la syntaxe suivante pour compiler Mycodebehind.cs :

csc.exe /out:mycodebehind.dll /t:library mycodebehind.cs

Lorsque vous utilisez le code suivant, la page code-behind hérite de la classe Page. La classe Page réside dans les System.Web.UI namespacepoints suivants :

public class MyClass : Page

Hériter de la classe donne à la Page page code-behind l’accès aux objets intrinsèques ASP.NET, tels que Request et Response. En outre, l’héritage de la Page classe fournit une infrastructure pour la gestion des événements pour les contrôles dans la page ASP.NET.

Dans l’exemple précédent, la page code-behind est compilée avant ASP.NET exécutions. Vous pouvez également référencer la classe code-behind à l’aide d’une SRC balise comme suit :

<%@ Language="C#" Inherits="MyStuff.MyClass" src="MyCodebehind.cs" %>

Dans ce cas, ASP.NET compile la page code-behind à la volée. Cette étape de compilation se produit uniquement lorsque le fichier code-behind est mis à jour (détecté par le biais d’une modification d’horodatage).

Prise en charge du code-behind dans Visual Studio .NET

Lorsque vous utilisez Visual Studio .NET pour créer ASP.NET Web Forms, les pages code-behind sont la méthode par défaut. En outre, Visual Studio .NET effectue automatiquement une pré-compilation pour vous lorsque vous générez votre solution.

Note

Les pages code-behind créées dans Visual Studio .NET incluent un attribut spécial page , Code-behindque Visual Studio .NET utilise.