panoramica del modello code-behind ASP.NET
Questo articolo offre una breve panoramica del codice in linea e del modello code-behind in ASP.NET.
Versione originale del prodotto: ASP.NET
Numero KB originale: 303247
Riepilogo
Questo articolo fa riferimento allo spazio dei nomi System.Web.UI
della libreria di classi di Microsoft .NET Framework.
ASP.NET supporta due metodi per creare pagine:
- Codice in linea
- Code-behind
In-Line codice
Il codice in linea è codice incorporato direttamente nella pagina ASP.NET. Il codice seguente rappresenta una pagina di ASP.NET di esempio che include codice in linea:
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 si riferisce al codice per la pagina di ASP.NET contenuta in un file di classe separato. Ciò consente una netta separazione del codice HTML dalla logica di presentazione. L'esempio seguente illustra una pagina 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(); } } }
Nell'esempio precedente è possibile usare la sintassi seguente per compilare Mycodebehind.cs:
csc.exe /out:mycodebehind.dll /t:library mycodebehind.cs
Quando si usa il codice seguente, la pagina code-behind eredita dalla classe Page. La classe Page si trova in System.Web.UI namespace
:
public class MyClass : Page
L'ereditarietà Page
dalla classe consente alla pagina code-behind di accedere agli oggetti intrinseci ASP.NET, ad Request
esempio e Response
. Inoltre, l'ereditarietà Page
dalla classe fornisce un framework per la gestione degli eventi per i controlli all'interno della pagina ASP.NET.
Nell'esempio precedente la pagina code-behind viene compilata prima dell'esecuzione di ASP.NET. In alternativa, è possibile fare riferimento alla classe code-behind usando un SRC
tag come indicato di seguito:
<%@ Language="C#" Inherits="MyStuff.MyClass" src="MyCodebehind.cs" %>
In questo caso, ASP.NET compila la pagina code-behind in tempo reale. Questo passaggio di compilazione si verifica solo quando il file code-behind viene aggiornato (rilevato tramite una modifica del timestamp).
Supporto code-behind in Visual Studio .NET
Quando si usa Visual Studio .NET per creare Web Forms ASP.NET, le pagine code-behind sono il metodo predefinito. Inoltre, Visual Studio .NET esegue automaticamente la pre-compilazione quando si compila la soluzione.
Nota
Le pagine code-behind create in Visual Studio .NET includono un attributo speciale page
, , Code-behind
usato da Visual Studio .NET.
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per