Übersicht über ASP.NET CodeBehind-Modell

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

              Originale Produktversion: ASP.NET
Ursprüngliche KB-Nummer: 303247

Zusammenfassung

Dieser Artikel bezieht sich auf den Microsoft .NET Framework-Klassenbibliotheksnamespace System.Web.UI.

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 sauber Trennung Ihres HTML-Codes von Ihrer 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

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

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

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

In diesem Fall kompiliert ASP.NET die CodeBehind-Seite im Fly-Betrieb. Dieser Kompilierungsschritt tritt nur auf, wenn die CodeBehind-Datei aktualisiert wird (was 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 eine Vorkompilierung für Sie durch, wenn Sie Ihre Projektmappe erstellen.

Hinweis

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