Ü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-behind
das von Visual Studio .NET verwendet wird.
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für