Brug af Case, i ASP
Sådan arbejder du med mange tilstande
Hvis du har overvejet hvordan man f.eks. laver "mange sider i én", som man tit ser, det kan se sådan ud i din adressebar:
http://www.adresse.dk/?side=forsiden
eller
http://www.adresse.dk/default.asp?side=links&subside=danske
Begge er reelt bare en række querystrings, som betegner hvilken information man vil have vist på siden.
Der kan være flere praktiske grunde til at bruge cases, i stedet for forskellige unikke sider:
* Det er lettere at danne et overblik over sidens samlede funktionalitet
* Du kan skjule din interne filstruktur (mere om det senere)
* Som eksemplet ovenfor viser kan man f.eks. have flere substrukturer på samme fysiske side.
lidt forhåndsviden
Før vi kan bruge cases er det nok rart at vide hvad de afløser rent programmeringsmæssigt:
Man kan sammenligne cases med en bunke if-elseif-end if sætninger:
<%
'her opretter vi et request, der "fanger" strengen fra URL'en
sidekald = request.querystring("side")
'her henter vi den første side
if sidekald = "side1" then
Response.write ("Dette er side 1")
'den næste
elseif sidekald = "side2" then
Response.write ("Dette er side 2")
'den side der skal vises hvis stringen ikke bliver brugt
else
Response.write ("Dette er forsiden")
end if
%>
Som du nok kan forestille dig, så vil ovenstående bliver ret kedeligt at holde styr på i længden, det er i hvertfald ikke specielt kønt at se på

Cases, benytter samme princip, men man har bestemt at en case allerede ved at den vil sammenligne de to stringe, for at lave et eksempel, så laver vi det samme som før, bare med cases:
<%
select case request.querystring("side")
case ("side1")
Response.write("Dette er side 1")
case ("side2")
Response.write("Dette er side 3")
case ("side3")
Response.write("Dette er side 3")
case else
Response.write("Dette er forsiden")
end select
%>
Måske kan du forestille dig at det her er praktisk, der er i hvertfald ikke så meget kode at holde styr på.
tip:En ting man skal ligge mærke til er at til forskel fra f.eks. Java, så kan du bruge tekststrenge som case, hvis du bruger en switch i Java så kan du kun bruge tal, men ellers er dette generelt for de fleste sprog.
tip:Ovenstående eksempel, er ren asp, men naturligvis kan du starte og lukke dine asp tags, som med andet kode, her er endnu et eksempel, hvor der er inkluderet nogle includes af forskellig art:
<%
select case request.querystring("side")
case ("side1") %>
<!--#include virtual="\\inc\\side1.asp"-->
<% case ("side2") %>
<!--#include file="inc\\side2.asp"-->
<% case ("side3") %>
Dette er side 3, som du kan se er det bare almindelig tekst :)
<% case else %>
Response.write("Dette er forsiden")
end select
%>
Bemærk dog at selvom du laver cases, så vil include filerne altid blive indsat før serveren kører asp scriptet, derfor vil du ikke få nogen ydelsesforbedring af ovenstående, men det er da mere læseligt

En sidste ting du skal være opmærksom på er at, selvom du godt kan have to cases der benytter samme querystring (f.eks. hvis du vil have en unik menu, og indholdsdel på siden) så skal den altid lukkes og åbnes korrekt, du kan ikke lade en case stå "åben" ved at glemme at afslutte den med "end select" så får du fejl.