webForumDet fria alternativet

QueryStrings värde blir fel

.NETur .NET

11 svar · 505 visningar · startad av StefanBergfeldt

StefanBergfeldtMedlem sedan sep. 2004828 inlägg
#1

domän.se/sida.aspx?p=print

Så när jag läser av QueryString (debuggar) så får jag värdet "print\r\n "

Hur kommer det sig, och vad ska jag göra åt det? När jag sen har if (Request.QueryString["p"]=="print") så blir den alltid false

hopparnMedlem sedan nov. 20011 551 inlägg
#2

hur genererar du länken då?
Har du testat att skriva in länken i webbläsaren och debugga och se om det fortfarande är \r\n på? det är ju escape för radbyte etc så nånstans kommer de ju i från... är det en automatgenererad länk kanske det är fel där den skapas... sök och du ska finna :)

StefanBergfeldtMedlem sedan sep. 2004828 inlägg
#3

Länken är hård-kodad. Blir samma skit om jag skriver adressen manuellt.
Jag håller med om att det måste komma någonstansifrån. Kan det vara .ToLower() som lägger på det?

[edit]
Nej det är inte .ToLower() som gör det
[/edit]

DenkanMedlem sedan juni 2002256 inlägg
#4

Gäller det flera/alla webbläsare?

StefanBergfeldtMedlem sedan sep. 2004828 inlägg
#5

Testat i Firefox, IE, Opera och Chrome (senaste versionerna), och ja det är lika i alla.

NickemannenMedlem sedan aug. 20003 575 inlägg
#6

För att gå runt det kan du använda

.StartsWith("print");

Men det är ju inte den lösningen du önskar antar jag :)

StefanBergfeldtMedlem sedan sep. 2004828 inlägg
#7

Hehe, nej det är inte den lösningen jag önskar.
Jag önskar en lösning på mitt problem, inte en ful-lösning.
Jag kan absolut köra med .Replace("\n\r", "").Trim(); men det är också nästan lika fult.

StefanBergfeldtMedlem sedan sep. 2004828 inlägg
#8

string p = Request.QueryString["p"].ToLower().Replace("\n\r", "").Trim();

Det blev en fullösning i väntan på en bättre lösning

dAEkMedlem sedan feb. 20041 816 inlägg
#9

För att jämföra strängar/objekt ska man ju använda metoden equals, inte ==. Fast om du faktiskt har '\n' och '\r' i parametervärdet slår det inte igenom ändå, fast jag har lite svårt att tro att det är så. :) Vilken IDE kör du med?

NickemannenMedlem sedan aug. 20003 575 inlägg
#10

dAEk skrev:

För att jämföra strängar/objekt ska man ju använda metoden equals, inte ==. Fast om du faktiskt har '\n' och '\r' i parametervärdet slår det inte igenom ändå, fast jag har lite svårt att tro att det är så. :) Vilken IDE kör du med?

Det är ingen skillnad på Equals och == i C#, dock är det annorlunda i Java :)

dAEkMedlem sedan feb. 20041 816 inlägg
#11

Uj, my bad. Sorry! Trodde att det var som i Java. Man kanske inte borde yttra sig om saker man bara har lite erfarenhet av. Iaf inte när någon ber om hjälp. :r

StefanBergfeldtMedlem sedan sep. 2004828 inlägg
#12

Jag kör med Visual Web Developer 2008 Express, men eftersom felet blir vid körning så är det väl webbservern som är intressant. Jag har provat mot IIS i både XP Pro och Win 2k3 Server (utveckling/produktion) och mot Cassini (inbyggda i VWD). Samma fel överallt.

134 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)