Microsoft KB Archive/303247

= INFO: ASP.NET Code-Behind Model Overview =

Article ID: 303247

Article Last Modified on 2/23/2007

-

APPLIES TO


 * Microsoft ASP.NET 1.1
 * Microsoft ASP.NET 1.0

-



This article was previously published under Q303247



This article refers to the following Microsoft .NET Framework Class Library namespace:
 * System.Web.UI



SUMMARY
This article provides a brief overview of the code-behind model, which is introduced in ASP.NET.



MORE INFORMATION
ASP.NET supports two methods to author pages:
 * In-line code
 * Code-behind

In-Line Code
In-line code is code that is embedded directly within the ASP.NET page. The following code represents a sample ASP.NET page that includes in-line code:

Myinlinecode.aspx <%@ Language=C# %>   void MyButton_OnClick(Object sender, EventArgs e)  { MyLabel.Text = MyTextbox.Text.ToString; }         

Code-Behind
Code-behind refers to code for your ASP.NET page that is contained within a separate class file. This allows a clean separation of your HTML from your presentation logic. The following sample illustrates an ASP.NET code-behind page:

MyCodebehind.aspx <%@ Language=&quot;C#&quot; Inherits=&quot;MyStuff.MyClass&quot; %>   </asp:textbox> <asp:button id=&quot;MyButton&quot; text=&quot;Echo Input&quot; Onclick=&quot;MyButton_Click&quot; runat=&quot;server&quot;></asp:button> <asp:label id=&quot;MyLabel&quot; runat=&quot;server&quot; /> </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; }   } } In the preceding sample, you can use the following syntax to compile Mycodebehind.cs:

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

When you use the following code, the code-behind page inherits from the Page class. The Page class resides in the System.Web.UI namespace: public class MyClass : Page Inheriting from the Page class gives the code-behind page access to the ASP.NET intrinsic objects, such as Request and Response. In addition, inheriting from the Page class provides a framework for handling events for controls within the ASP.NET page.

In the preceding sample, the code-behind page is compiled before ASP.NET runs. Alternatively, you can reference the code-behind class by using an SRC tag as follows: <%@ Language=&quot;C#&quot; Inherits=&quot;MyStuff.MyClass&quot; src=&quot;MyCodebehind.cs&quot; %> In this case, ASP.NET compiles the code-behind page on the fly. Notice that this compilation step only occurs when the code-behind file is updated (which is detected through a timestamp change).

Code-Behind Support in Visual Studio .NET
When you use Microsoft Visual Studio .NET to create ASP.NET Web Forms, code-behind pages are the default method. In addition, Visual Studio .NET automatically performs precompilation for you when you build your solution. Note that code-behind pages that are created in Visual Studio .NET include a special page attribute, Codebehind, which Visual Studio .NET uses.

<div class="references_section">