ASP.NET CodeBehind-Modellübersicht

Dieser Artikel bietet eine kurze Übersicht über den Inlinecode und das CodeBehind-Modell in ASP.NET.

Originalversion des Produkts: ASP.NET
Ursprüngliche KB-Nummer: 303247

Zusammenfassung

Dieser Artikel bezieht sich auf den Namespace System.Web.UIder Microsoft .NET Framework-Klassenbibliothek.

ASP.NET unterstützt zwei Methoden zum Erstellen von Seiten:

  • Inlinecode
  • CodeBehind

In-Line Code

Inlinecode ist Code, der direkt in die ASP.NET Seite eingebettet ist. Der folgende Code stellt ein Beispiel ASP.NET Seite dar, die Inlinecode enthält:

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>

CodeBehind

CodeBehind bezieht sich auf Code für Ihre ASP.NET Seite, die in einer separaten Klassendatei enthalten ist. Dies ermöglicht eine klare Trennung des HTML-Codes von der Präsentationslogik. Das folgende Beispiel veranschaulicht eine ASP.NET CodeBehind-Seite:

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

Im vorherigen Beispiel können Sie die folgende Syntax verwenden, um Mycodebehind.cs zu kompilieren:

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

Wenn Sie den folgenden Code verwenden, erbt die CodeBehind-Seite von der Page-Klasse. Die Page-Klasse befindet sich im System.Web.UI namespace:

public class MyClass : Page

Wenn sie von der Page Klasse erbt, erhält die CodeBehind-Seite Zugriff auf die ASP.NET systeminternen Objekte, z Request . B. und Response. Darüber hinaus stellt das Erben von der Klasse ein Framework für die Page Behandlung von Ereignissen für Steuerelemente innerhalb der ASP.NET Seite bereit.

Im vorherigen Beispiel wird die CodeBehind-Seite kompiliert, bevor ASP.NET ausgeführt wird. Alternativ können Sie mithilfe eines SRC Tags wie folgt auf die CodeBehind-Klasse verweisen:

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

In diesem Fall kompiliert ASP.NET die CodeBehind-Seite im Flug. Dieser Kompilierungsschritt tritt nur auf, wenn die CodeBehind-Datei aktualisiert wird (die durch eine Zeitstempeländerung erkannt wird).

CodeBehind-Unterstützung in Visual Studio .NET

Wenn Sie Visual Studio .NET zum Erstellen von ASP.NET Web Forms verwenden, sind CodeBehind-Seiten die Standardmethode. Darüber hinaus führt Visual Studio .NET automatisch die Vorkompilierung für Sie aus, wenn Sie Ihre Lösung erstellen.

Hinweis

CodeBehind-Seiten, die in Visual Studio .NET erstellt werden, enthalten ein spezielles page Attribut, Code-behinddas von Visual Studio .NET verwendet wird.