Et kig på ASP.NETs Page klasse

Tags:    asp.net
Skrevet af Bruger #4522 @ 11.03.2009

Direktiver på Page -klassen


Disse direktiver bruges til at konfigurere køretidssystemet, så du kan justere hvordan din side bliver håndteret af ASP.NET. Direktiverne burde placeres øverst i filen (selvom dette ikke er noget krav). Hvert direktiv har et navn og nogle attributter du kan sætte. Syntaksen er som følger:

Fold kodeboks ind/udKode 


Det mest brugte direktiv er @Page direktivet, og et typisk eksempel på dette er:

Fold kodeboks ind/udKode 


På ASP.NET sider kan du bruge følgende direktiver:

  • @Assembly

  • @Control

  • @Implements

  • @Import

  • @Master

  • @MasterType

  • @OutputCache

  • @Page

  • @PreviousPageType

  • @Reference

  • @Register


Det vil komme for vidt at diskutere alle disse, men vi vil gå et par stykker igennem, heriblandet det mest benyttede @Page. De andre direktiver, kan du slå op på MSDN.

@Page-direktivet
Stort set alle af dine .aspx sider vil indeholde dette direktiv, og hver side kan kun indeholde ét @Page-direktiv. Direktivet har et enormt antal attributter (omkring 30) og giver dig mulighed for at specificere information omkring sidens kompilering, grundlæggende sideadfærd og sideoutput.

De mest brugte attributter er (resten kan ses på MSDN):

  • AutoEventWireup: Hvis sat til True (som er grundindstillingen) vil en sides standard hændelser (dvs. Load, PreRender etc.) automatisk blive hæftet til de eventhandlere du nu måtte skrive i din sides kode, f.eks. Page_Load, Page_PreRender osv.

  • Buffer: Angiver om ASP.NET sidens output holdes i en buffer indtil renderingen er slut hvorefter det så sendes til klienten. Kan sættes til True eller False. Er som grundindstilling sat til True.

  • CodeFile: Angiver navnet på den kodefil der indeholder sidens kode.

  • EnableSessionState: Hvis sat til True understøtter siden Session State. Hvis siden ikke gør brug af Session State kan man opnå bedre ydeevne ved af slå den fra (hvilket gøres ved at sætte den til False). Er som grundindstilling sat til True.

  • EnableViewSate: Hvis sat til True understøtter siden ViewState. ViewStaten er den ASP.NET egenskab der sørger for at sidens kontroltilstande (dvs. de forskellige felters værdier o.a.) huskes over flere sideforespørgelser. ViewState gemmes i en skjult felt på siden i form af en kodet streng. ViewState på en side skal jo bæres rundt hele tiden, over alle forespørgelser, og kan blive ganske stor hvilket påvirker ydeevnen. Så hvis ViewState ikke er nødvendig på en side, kan man opnåe en stor forbedring af ydeevnen ved at slå den fra (dvs. sætte den til False).

  • Inherits: Angiver (sammen med CodeFile atributten) klassenavnet på den klasse som denne side skal nedarve fra som beskrevet tidligere i denne artikel.

  • Language: Angiver det sprog som der skal bruges ved kompilering af indlejrede kodeblokker (dvs. <% ... %> ) og
    koden i <script> -blokken. Man kan også angive sproget på den enkelte <script> -blok ved at bruge Language -attributten. Vil typisk være enten C# eller VB.

  • Trace: Angiver om tracing er slået til eller fra. Som grundindstilling er tracing slået fra. Tracing tilføjer en masse diagnostisk output til en side.



@Import-direktivet
Dette direktiv bruges til at importere et namespace ind i en side (dvs. .aspx) eller en brugerkontrol (dvs, .ascx). Ved brug af dette direktiv bliver klasserne i namespacet tilgængelig på siden. Du kan selvfølgelig både importere namespaces der er en del af .NET og dine egne namespaces. Du kan f.eks. importere System.Data ved følgende direktiv:
Fold kodeboks ind/udKode 


Afslutning


Det var en lang artikel. Men dette er også et komplekst emne. Urutinerede ASP.NET udviklere roder tit rundt i specielt livscyklussen og bruger al for meget view sate. Siden ASP.NET 2.0 kan man ofte undvære view state i sær for databundne kontrollers vedkommende som bindes ved hver post back.

Hvad synes du om denne artikel? Giv din mening til kende ved at stemme via pilene til venstre og/eller lægge en kommentar herunder.

Del også gerne artiklen med dine Facebook venner:  

Kommentarer (1)

User
Bruger #16651 @ 09.10.11 21:11
Virkelig en yderst gennemarbejdet og flot artikel der gennemgår så mange detaljer! BRAVO!!
Du skal være logget ind for at skrive en kommentar.
t