Om jag tar emot ett värde från en QueryString och stringen är tom. Blir värdet null då, eller vad händer med det? Metoden Request.Querystring() returnerar alltid ett objekt av typen IStringList. Det är en lista med värdena för de nycklar i querystring som har namnet du angett. Ifall det inte fanns någon nyckel med det namnet så innehåller listan noll poster. Jag skrev inte att jag kodar i JScript. Där finns inte Empty, tror jag? Nej, det stämmer.Hur fungerar egentligen QueryString?
Ett exempel:
jag har en variabel där jag ska spara värdet från QueryStringen. Adressen ser ut så här
mypage.asp?id=3
var myVar = Request.QueryString("id");
I det här fallet är det ju inge bekymmer. Men vad får min variabel för värde om adressen ser ut så här mypage.asp
hmm det här var krångligt att skriva. Hoppas nån förstår vad jag menar.
Jag skulle ju kunna skriva så här.
<code>
myVar = (Request.QueryString);
if(myVar == "")
{ kod
}
</code>
Men då blir det ju fel om någon skriver mypage?klot=34 eller något annat. Då är ju inte frågesträngen tom längre.Sv: Hur fungerar egentligen QueryString?
När du tar värdet av listan så kommer du att få en kommaseparerad sträng med alla värdena i listan. Ifall listan innehåller en post (det vanligaste) så får du bara den strängen. Ifall listan var tom så får du värdet Empty.
Det här är var Request.Querystring("id") kommer att ge:
mypage.asp?id=3&id=4&id=5 --> "3, 4, 5"
mypage.asp?id=3 --> "3"
mypage.asp --> EmptySv:Hur fungerar egentligen QueryString?
Sv: Hur fungerar egentligen QueryString?
I JScript fungerar det lite annorlunda. Där finns inte samma skillnad mellan värdetyper och objekt. När du använder Request.Querystring så kommer du att få IStringList-objektet.
Med din kod:
var myVar = Request.QueryString("id");
så kommer myVar att vara en referens till IStringList-objektet. För att få värdet av objektet så får du använda:
var myVar = Request.QueryString("id").Value;
Ifall det inte fanns någon nyckel med namnet id i querystring så kommer myVar att få värdet undefined.