Compartir a través de


Introducción al modelo de código subyacente de ASP.NET

En este artículo se proporciona información general breve sobre el 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.UIde 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 en línea

El código en línea es código incrustado directamente dentro de 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 código 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

La herencia de la Page clase proporciona acceso a la página de código subyacente al ASP.NET objetos intrínsecos, como Request y Response. Además, heredar de la Page clase proporciona un marco para controlar los eventos de los controles dentro de la página de 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 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 Formularios 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 visual Studio .NET usa.