ASP.NET Arka planda kod modeline genel bakış

Bu makalede, ASP.NET satır içi koda ve Arka planda kod modeline kısa bir genel bakış sağlanmaktadır.

Orijinal ürün sürümü: ASP.NET
Özgün KB numarası: 303247

Özet

Bu makale, Microsoft .NET Framework sınıf kitaplığı ad alanını System.Web.UIifade eder.

ASP.NET sayfaları yazmak için iki yöntemi destekler:

  • Satır içi kod
  • Arka planda kod

kodu In-Line

Satır içi kod, doğrudan ASP.NET sayfasına eklenmiş koddur. Aşağıdaki kod, satır içi kod içeren örnek bir ASP.NET sayfasını temsil eder:

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>

Arka planda kod

Arka planda kod, ayrı bir sınıf dosyasında yer alan ASP.NET sayfanızın kodunu ifade eder. Bu, HTML'nizin sunu mantığınızdan temiz bir şekilde ayrılmasını sağlar. Aşağıdaki örnekte arka planda kod ASP.NET bir sayfa gösterilmektedir:

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

Yukarıdaki örnekte, Mycodebehind.cs derlemek için aşağıdaki söz dizimini kullanabilirsiniz:

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

Aşağıdaki kodu kullandığınızda arka planda kod sayfası Page sınıfından devralınır. Page sınıfı içinde System.Web.UI namespacebulunur:

public class MyClass : Page

sınıfından Page devralma, ve Responsegibi Request ASP.NET iç nesnelerine arka planda kod sayfası erişimi verir. Ayrıca, sınıfından Page devralma, ASP.NET sayfasındaki denetimler için olayları işlemeye yönelik bir çerçeve sağlar.

Yukarıdaki örnekte arka planda kod sayfası, ASP.NET çalışmadan önce derlenmiş. Alternatif olarak, aşağıdaki gibi bir SRC etiket kullanarak arka planda kod sınıfına başvurabilirsiniz:

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

Bu durumda, ASP.NET arka planda kod sayfasını anında derler. Bu derleme adımı yalnızca arka planda kod dosyası güncelleştirildiğinde gerçekleşir (zaman damgası değişikliğiyle algılanır).

Visual Studio .NET'te arka planda kod desteği

ASP.NET Web Forms oluşturmak için Visual Studio .NET kullandığınızda varsayılan yöntem arka planda kod sayfalarıdır. Ayrıca Visual Studio .NET, çözümünüzü oluştururken sizin için otomatik olarak ön derleme gerçekleştirir.

Not

Visual Studio .NET'te oluşturulan arka planda kod sayfaları, Code-behindVisual Studio .NET tarafından kullanılan özel page bir öznitelik içerir.