Delen via


Overzicht van ASP.NET Code-behind-model

Dit artikel bevat een kort overzicht van de inline-code en het code-behind-model in ASP.NET.

Oorspronkelijke productversie: ASP.NET
Oorspronkelijk KB-nummer: 303247

Samenvatting

Dit artikel verwijst naar de naamruimte System.Web.UIvan de Microsoft .NET Framework-klassebibliotheek.

ASP.NET ondersteunt twee methoden voor het ontwerpen van pagina's:

  • Inlinecode
  • Code-behind

Inlinecode

Inlinecode is code die rechtstreeks in de ASP.NET pagina is ingesloten. De volgende code vertegenwoordigt een voorbeeldpagina ASP.NET met inlinecode:

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 verwijst naar code voor uw ASP.NET-pagina die zich in een afzonderlijk klassebestand bevindt. Hierdoor is een schone scheiding van uw HTML mogelijk van uw presentatielogica. In het volgende voorbeeld ziet u een ASP.NET pagina met code-achter:

  • 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();
            }
        }
    }
    

In het voorgaande voorbeeld kunt u de volgende syntaxis gebruiken om Mycodebehind.cs te compileren:

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

Wanneer u de volgende code gebruikt, neemt de pagina achter de code over van de paginaklasse. De klasse Pagina bevindt zich in het System.Web.UI namespacevolgende:

public class MyClass : Page

Overnemen van de Page klasse geeft de pagina achter de code toegang tot de ASP.NET intrinsieke objecten, zoals Request en Response. Bovendien biedt overname van de klasse een framework voor het Page verwerken van gebeurtenissen voor besturingselementen op de ASP.NET pagina.

In het voorgaande voorbeeld wordt de code-behind-pagina gecompileerd voordat ASP.NET wordt uitgevoerd. U kunt ook verwijzen naar de code-behind-klasse door een SRC tag als volgt te gebruiken:

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

In dit geval compileert ASP.NET de code-behind-pagina on-the-fly. Deze compilatiestap vindt alleen plaats wanneer het code-behind-bestand wordt bijgewerkt (die wordt gedetecteerd door een tijdstempelwijziging).

Ondersteuning voor code-behind in Visual Studio .NET

Wanneer u Visual Studio .NET gebruikt om ASP.NET Web Forms te maken, zijn code-achterpagina's de standaardmethode. Bovendien voert Visual Studio .NET automatisch precompilatie voor u uit wanneer u uw oplossing bouwt.

Notitie

Code-behind-pagina's die zijn gemaakt in Visual Studio .NET bevatten een speciaal page kenmerk, Code-behinddat visual Studio .NET gebruikt.