Chi ha sviluppato una pagina ASP classica, avrà sicuramente utilizzato le direttive. L'ASP classico contiene poche direttive, le piú importanti delle quali sono @ Language e #Include. La direttiva @ Language, che compare all'inizio di tutte le pagine ASP classiche, indica al runtime ASP quale modulo di gestione del linguaggio utilizzare per interpretare lo script presente all'interno dei blocchi di rendering <% %> della pagina. La direttiva #Include viene utilizzata per indicare all'interprete ASP di includere un particolare file nella pagina ASP corrente.

Le direttive sono semplicemente dei modi per determinare a livello di dichiarazione il funzionamento di alcuni aspetti di un programma. ASP.NET espande notevolmente l'utilizzo delle direttive rispetto l’ASP classico aggiungendone alcune per eseguire operazioni diverse che vanno dal controllo del comportamento e configurazione della pagina al caching dell'output della pagina. Le direttive @ di ASP.NET dispongono inoltre di attributi che ne incrementano notevolmente l'efficacia e la flessibilità. Le direttive ASP classiche sono rappresentate in ASP.NET come attributi della direttiva @ Page.

La direttiva @ Page, utilizzabile solo nei file aspx, consente di definire attributi specifici della pagina utilizzati dai compilatori e dal runtime ASP.NET per determinare il comportamento della pagina. I valori predefiniti di alcuni di questi attributi sono impostati nella sezione di configurazione Pages del file Machine.config. Alcuni attributi, incluso AutoEventWireup, sono impostati o sostituiti nelle pagine create da Visual Studio .NET.

Di seguito vediamo un esempio di dichiarazione (fatta ad inizio pagina aspx) e gli attributi piú utilizzati:

                        
<%@ Page Title="Titolo" Language="VB" MasterPageFile="~/MasterPage.master" AutoEventWireup="false" CodeFile="pagina.aspx.vb" Inherits="pagina" %>

- AutoEventWireup (true / false)
Consente di determinare se i gestori di eventi quali Page_Load sono configurati automaticamente. L'impostazione predefinita è true.

- Buffer (true / false)
Consente di determinare se il rendering dell'output deve essere memorizzato prima di essere inviato al client. L'impostazione predefinita è true.

- ClassName (qualsiasi nome classe valido)
Consente di determinare il nome della pagina generata compilando dinamicamente la pagina. Questo attributo funziona con o senza l'attributo Codebebind e con gli attributi Src o Codebebind. Se omesso, il comportamento predefinito prevede che il formato del nome della pagina sia nomefile_aspx

- ClientTarget (qualsiasi stringa UserAgent valida)
Consente di determinare il browser di destinazione in cui eseguire il rendering dell'output. La stringa User Agent deve essere una delle stringhe riconosciute dai controlli server utilizzati. Vedere anche l'articolo Rimuovere il border="0" nel rendering di una asp:Image per validare correttamente la pagina con il W3C Validator

- Codebebind (Nome file della classe di codice-sottostante)
Questo attributo viene utilizzato in Visual Studio .NET per individuare le classi di codice sottostante da compilare durante un'operazione di creazione. Non è utilizzato dal runtime ASP.NET.

- CodePage (Qualsiasi valore di tabella codici valido)
Utilizzata nelle impostazioni di globalizzazione per impostare la tabella codici di una pagina asp.

- ContentType (Qualsiasi tipo MIME valido come per es. "text/html")
Consente di impostare il tipo MIME per l'output della pagina. Questo attributo è utile per restituire contenuto binario (come immagini) al client.

- Culture (Qualsiasi stringa della lingua valida come it-IT)
Consente di determinare l'impostazione lingua per la pagina

- Debug (true / false)
Consente di determinare se le pagine devono essere compilate con o senza simboli di debug. Poiché questa impostazione ha effetto sulle prestazioni, per le applicazioni di produzione impostare il valore false. L'impostazione predefinita è false.

- EnableSessionState (true / false)
Consente di determinare se una richiesta inviata alla pagina inizia una nuova sessione e se è possibile accedere alla pagina o modificare i dati memorizzati in una sessione esistente. L'impostazione predefinita è true.

- EnableViewState (true / false)
Consente di determinare se viewstate è attivato per la pagina. Il campo VietuState consente di salvare lo stato corrente dei controlli server tra una richiesta e l'altra. L'impostazione predefinita è true.

- ErrorPage (Qualsiasi URL valido)
Consente di specificare una pagina verso cui reindirizzare il client quando si verifica un'eccezione non gestita.

- Explicit (true / false)
Consente di determinare se il codice scritto in Visual Basic è soggetto alla regola Option Explicit quando viene compilato. L'impostazione predefinita è true.

- Inherits (Qualsiasi classe derivata dalla classe Page. Il formato è "nomespazionomi.nomeclasse" o "nomeclasse")
Consente di specificare una classe di codice sottostante per la pagina. Il codice contenuto nella pagina viene associato al codice della classe di codice sottostante per formare un'unica classe.

- Language (Qualsiasi stringa valida per un linguaggio .NET installato come per es. visualbasic)
Consente di specificare il compilatore da utilizzare per compilare la pagina. L'impostazione predefinita è vb.

- Src (Nome file della classe di codice sottostante)
Consente di specificare il nome di un file di classe di codice sottostante da compilare dinamicamente in fase di esecuzione.

- Strict (true / false)
Consente di determinare se il codice scritto in Visual Basic è soggetto alla regola Option Strict quando viene compilato. L'impostazione predefinita è false.