introducción al modelo de código subyacente de ASP.NET
En este artículo se proporciona una breve introducción al código en línea y el modelo de código subyacente en ASP.NET.
Versión original del producto: ASP.NET
Número de KB original: 303247
Resumen
En este artículo se hace referencia al espacio de nombres System.Web.UI
de la biblioteca de clases de Microsoft .NET Framework .
ASP.NET admite dos métodos para crear páginas:
- Código en línea
- Código subyacente
código In-Line
El código en línea es el código que se inserta directamente en la página de ASP.NET. El código siguiente representa una página de ASP.NET de 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 página de 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 página de código subyacente de 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(); } } }
En el ejemplo anterior, puede usar la sintaxis siguiente para compilar Mycodebehind.cs:
csc.exe /out:mycodebehind.dll /t:library mycodebehind.cs
Cuando se usa el código siguiente, 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
Heredar de la Page
clase proporciona a la página de código subyacente acceso a los ASP.NET objetos intrínsecos, como Request
y Response
. Además, heredar de la Page
clase proporciona un marco para controlar eventos para los controles dentro de la página ASP.NET.
En el ejemplo anterior, la página de código subyacente se compila antes de que se ejecute ASP.NET. Como alternativa, puede hacer referencia a la clase de código subyacente mediante una SRC
etiqueta como se indica a continuación:
<%@ Language="C#" Inherits="MyStuff.MyClass" src="MyCodebehind.cs" %>
En este caso, ASP.NET compila la página de código subyacente sobre la marcha. Este paso de compilación solo se produce cuando se actualiza el archivo de código subyacente (que se detecta mediante 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 la 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 especial page
, Code-behind
, que usa Visual Studio .NET.
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de