Udostępnij za pośrednictwem


Omówienie modelu ASP.NET code-behind

Ten artykuł zawiera krótkie omówienie kodu wbudowanego i modelu code-behind w ASP.NET.

Oryginalna wersja produktu: ASP.NET
Oryginalny numer KB: 303247

Podsumowanie

W tym artykule odwołuje się do przestrzeni System.Web.UInazw biblioteki klas programu Microsoft .NET Framework.

ASP.NET obsługuje dwie metody tworzenia stron:

  • Kod w wierszu
  • Plik codebehind

Kod w wierszu

Kod wbudowany to kod osadzony bezpośrednio na stronie ASP.NET. Poniższy kod reprezentuje przykładową stronę ASP.NET zawierającą kod w wierszu:

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>

Plik codebehind

Kod-behind odwołuje się do kodu dla strony ASP.NET, która znajduje się w osobnym pliku klasy. Umożliwia to czyste oddzielenie kodu HTML od logiki prezentacji. Poniższy przykład ilustruje stronę ASP.NET kodową:

  • 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();
            }
        }
    }
    

W poprzednim przykładzie można użyć następującej składni do skompilowania Mycodebehind.cs:

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

W przypadku użycia następującego kodu strona za pomocą kodu dziedziczy po klasie Page. Klasa Page znajduje się w obiekcie System.Web.UI namespace:

public class MyClass : Page

Dziedziczenie z Page klasy zapewnia dostęp do strony za pomocą kodu do obiektów wewnętrznych ASP.NET, takich jak Request i Response. Ponadto dziedziczenie z Page klasy zapewnia platformę do obsługi zdarzeń dla kontrolek na stronie ASP.NET.

W poprzednim przykładzie strona za pomocą kodu jest kompilowana przed uruchomieniem ASP.NET. Alternatywnie możesz odwołać się do klasy za pomocą tagu SRC w następujący sposób:

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

W takim przypadku ASP.NET kompiluje stronę za pomocą kodu na bieżąco. Ten krok kompilacji występuje tylko wtedy, gdy plik za kodem jest aktualizowany (który jest wykrywany przez zmianę znacznika czasu).

Obsługa kodu w programie Visual Studio .NET

Jeśli używasz programu Visual Studio .NET do tworzenia ASP.NET web forms, strony za pomocą kodu są domyślną metodą. Ponadto program Visual Studio .NET automatycznie wykonuje kompilację wstępną podczas tworzenia rozwiązania.

Uwaga 16.

Strony kodu tworzone w programie Visual Studio .NET zawierają specjalny page atrybut , Code-behindktórego używa program Visual Studio .NET.