Compartilhar via


ASP.NET Visão geral do modelo code-behind

Este artigo fornece uma breve visão geral do código embutido e do modelo Code-behind no ASP.NET.

Versão original do produto: ASP.NET
Número original do KB: 303247

Resumo

Este artigo refere-se ao namespace System.Web.UIda biblioteca de classes do Microsoft .NET Framework.

ASP.NET suporta dois métodos para criar páginas:

  • Código em linha
  • Code-behind

Código em linha

O código embutido é o código incorporado diretamente na página ASP.NET. O código a seguir representa um exemplo ASP.NET página que inclui código embutido:

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 refere-se ao código para sua página de ASP.NET que está contida em um arquivo de classe separado. Isso permite uma separação limpa do HTML da lógica de apresentação. O exemplo a seguir ilustra uma página 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();
            }
        }
    }
    

No exemplo anterior, você pode usar a seguinte sintaxe para compilar Mycodebehind.cs:

csc.exe /out:mycodebehind.dll /t:library mycodebehind.cs

Quando você usa o código a seguir, a página code-behind herda da classe Page. A classe Page reside no System.Web.UI namespace:

public class MyClass : Page

Herdar da Page classe dá à página code-behind acesso à ASP.NET objetos intrínsecos, como Request e Response. Além disso, herdar da Page classe fornece uma estrutura para lidar com eventos para controles na página ASP.NET.

No exemplo anterior, a página code-behind é compilada antes ASP.NET execução. Como alternativa, você pode fazer referência à classe code-behind usando uma SRC marca da seguinte maneira:

<%@ Language="C#" Inherits="MyStuff.MyClass" src="MyCodebehind.cs" %>

Nesse caso, ASP.NET compila a página code-behind em tempo real. Essa etapa de compilação ocorre apenas quando o arquivo code-behind é atualizado (o que é detectado por meio de uma alteração de carimbo de data/hora).

Suporte code-behind no Visual Studio .NET

Quando você usa o Visual Studio .NET para criar ASP.NET Web Forms, as páginas code-behind são o método padrão. Além disso, o Visual Studio .NET executa automaticamente a pré-compilação para você quando você cria sua solução.

Observação

As páginas code-behind criadas no Visual Studio .NET incluem um atributo especial page , Code-behind, que o Visual Studio .NET usa.