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

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

              Version d’origine du produit : ASP.NET
Numéro de la 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 In-Line

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 d’ASP.NET contenue dans un fichier de classe distinct. Cela permet une séparation propre de 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 :System.Web.UI namespace

public class MyClass : Page

L’héritage de la Page classe permet à la page code-behind d’accéder aux objets intrinsèques ASP.NET, tels que Request et Response. En outre, hériter 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écution. 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 (qui est détecté par un changement 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 la précompilation pour vous lorsque vous générez votre solution.

Remarque

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