Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo offre una breve panoramica del codice inline 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.UIdella libreria di classi microsoft .NET Framework.
ASP.NET supporta due metodi per creare pagine:
- Codice in linea
- Code-behind
Codice in linea
Il codice in linea è il codice incorporato direttamente all'interno della pagina ASP.NET. Il codice seguente rappresenta una pagina di ASP.NET di esempio che include codice inline:
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 fa riferimento al codice per la pagina ASP.NET contenuta all'interno di un file di classe separato. In questo modo è possibile separare il 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à dalla classe consente alla Page pagina code-behind di accedere agli oggetti intrinseci ASP.NET, ad esempio Request 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 precompilazione quando si compila la soluzione.
Note
Le pagine code-behind create in Visual Studio .NET includono un attributo speciale page , Code-behind, usato da Visual Studio .NET.