Page Directives in Asp.Net

Directives in ASP.NET are statements that provide optional settings and instructions for the ASP.NET framework, without being included in the rendered HTML output sent to the client's browser. These directives encompass various functionalities such as registering custom controls and specifying the page language. They play a crucial role in defining the processing behavior of .aspx pages (web forms) or .ascx pages (user controls) within the .NET framework.



The most commonly used directive is the @ Page directive and it can be used only in Web Forms. Page directive allows you to specify many configuration options for the page. By default, Visual Studio creates a page directive as shown below:

C# <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> VB.NET <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

In an .aspx file, it is recommended to have only one @ Page directive. Within this directive, it is important to specify the desired language using the Language attribute. This attribute supports various .NET Framework-supported languages such as VB.Net, C#, or JScript.

The AutoEventWireup attribute controls the automatic binding of page events based on the method naming convention. By default, it is set to true, enabling automatic lookup and binding of events. However, if set to False, explicit binding of methods to page events is required, allowing flexibility in naming conventions.

The CodeFile attribute is used to specify the path to the referenced code-behind file associated with the page. On the other hand, the Inherits attribute identifies the class name from which the page should inherit. This allows for customization by deriving from any class based on the Page class.

Different types of directives in Asp.Net

@ Assembly

The @Assembly Directive attaches assemblies to the page or an ASP.NET user control thereby all the assembly classes and interfaces are available to the class. This directive supports the two attributes Name and src. The Name attribute defines the assembly name and the src attribute defines the source of the assembly.

@ Control

Defines control-specific attributes used by the ASP.NET page parser and compiler and can be included only in .ascx files (user controls).

@ Implements

The @Implements Directive gets the ASP.NET pages to implement .Net framework interfaces. This directive only supports a single attribute interface.

@ Import

The Import directive imports a namespace into a web page, user control page of application. If the Import directive is specified in the global.asax file, then it is applied to the entire application. If it is in a page of user control page, then it is applied to that page or control.

@ Master

Identifies a page as a master page and defines attributes used by the ASP.NET page parser and compiler and can be included only in .master files.

@ MasterType

Defines the class or virtual path used to type the Master property of a page.

@ OutputCache

The OutputCache directive controls the output caching policies of a web page or a user control.

@ Page

The @Page directive enables you to specify attributes and values for an Asp.Net Page to be used when the page is parsed and compiled. Every .aspx files should include this @Page directive to execute. There are many attributes belong to this directive.

@ PreviousPageType

Creates a strongly typed reference to the source page from the target of a cross-page posting.

@ Reference

Links a page, user control, or COM control to the current page or user control declaratively.

@ Register

Associates aliases with namespaces and classes, which allow user controls and custom server controls to be rendered when included in a requested page or user control.