ASP.NET introducción al modelo de código subyacente
En este artículo se proporciona una breve introducción al código en línea y al modelo de código subyacente en ASP.NET.
Versión del producto original: ASP.NET
Número KB original: 303247
Resumen
En este artículo se hace referencia al espacio de nombres .NET Framework biblioteca de clases de Microsoft System.Web.UI .
ASP.NET admite dos métodos para crear páginas:
- Código en línea
- Código subyacente
In-Line código
El código en línea es código incrustado directamente dentro de la página ASP.NET línea. El siguiente código representa una página de ASP.NET ejemplo que incluye código en línea:
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>
Código subyacente
El código subyacente hace referencia al código de la ASP.NET que se encuentra dentro de un archivo de clase independiente. Esto permite una separación limpia del HTML de la lógica de presentación. En el ejemplo siguiente se muestra una ASP.NET de código subyacente:
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(); } } }
En el ejemplo anterior, puede usar la siguiente sintaxis para compilar Mycodebehind.cs:
csc.exe /out:mycodebehind.dll /t:library mycodebehind.cs
Al usar el siguiente código, la página de código subyacente hereda de la clase Page. La clase Page reside en System.Web.UI namespace :
public class MyClass : Page
La herencia de la clase proporciona a la página de código subyacente acceso a Page los ASP.NET intrínsecos, como Request y Response . Además, la herencia de la clase proporciona un marco para controlar eventos para controles dentro de Page la ASP.NET web.
En el ejemplo anterior, la página de código subyacente se compila antes de ASP.NET ejecuta. Como alternativa, puede hacer referencia a la clase de código subyacente mediante una SRC etiqueta de la siguiente manera:
<%@ Language="C#" Inherits="MyStuff.MyClass" src="MyCodebehind.cs" %>
En este caso, ASP.NET compila la página de código subyacente al instante. Este paso de compilación solo se produce cuando se actualiza el archivo de código subyacente (que se detecta a través de un cambio de marca de tiempo).
Compatibilidad con código subyacente en Visual Studio .NET
Cuando se usa Visual Studio .NET para crear ASP.NET Web Forms, las páginas de código subyacente son el método predeterminado. Además, Visual Studio .NET realiza automáticamente una compilación previa al compilar la solución.
Nota
Las páginas de código subyacente que se crean en Visual Studio .NET incluyen un atributo page especial, Code-behind que Visual Studio .NET usa.