Dela via


översikt över ASP.NET code-behind-modell

Den här artikeln innehåller en kort översikt över den infogade koden och bakomliggande kodmodellen i ASP.NET.

Ursprunglig produktversion: ASP.NET
Ursprungligt KB-nummer: 303247

Sammanfattning

Den här artikeln refererar till microsoft .NET Framework-klassbibliotekets namnområde System.Web.UI.

ASP.NET stöder två metoder för att skapa sidor:

  • Infogad kod
  • Kod bakom

Infogad kod

Infogad kod är kod som är inbäddad direkt på sidan ASP.NET. Följande kod representerar ett exempel ASP.NET sida som innehåller infogad kod:

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>

Kod bakom

Kod bakom refererar till kod för din ASP.NET sida som finns i en separat klassfil. På så sätt kan html-koden skiljas från presentationslogik. Följande exempel illustrerar en ASP.NET bakomliggande sida:

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

I föregående exempel kan du använda följande syntax för att kompilera Mycodebehind.cs:

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

När du använder följande kod ärver sidan bakom koden från klassen Sida. Klassen Page finns i System.Web.UI namespace:

public class MyClass : Page

Ärvning från Page klassen ger kod bakom sidan åtkomst till ASP.NET inbyggda objekt, till exempel Request och Response. Dessutom tillhandahåller ärvning från Page klassen ett ramverk för hantering av händelser för kontroller på sidan ASP.NET.

I föregående exempel kompileras sidan bakom koden innan ASP.NET körs. Du kan också referera till klassen code-behind med hjälp av en SRC tagg på följande sätt:

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

I det här fallet kompilerar ASP.NET sidan bakom koden i farten. Det här kompileringssteget inträffar bara när kod bakom-filen uppdateras (vilket identifieras genom en tidsstämpeländring).

Stöd för bakomliggande kod i Visual Studio .NET

När du använder Visual Studio .NET för att skapa ASP.NET webbformulär är kod bakom sidor standardmetoden. Dessutom utför Visual Studio .NET automatiskt förkompilering åt dig när du skapar din lösning.

Kommentar

Bakomliggande sidor som skapas i Visual Studio .NET innehåller ett särskilt page attribut, Code-behind, som Visual Studio .NET använder.