ASP.NET har ju som standard att HTML encoda allt som skickas ut till de inbyggda kontrollerna. Om man har en asp:hyperlink och skickar ut en adress med en frågesträng så omvandlas t.ex. & till & I de allra felsta fall är detta ingen fara eftersom webbläsarna ändå hanterar det korrekt. Problemet är att jag skickar med en variabel på varje sida om tidigare sida. Tidigare sida kan ligga i 5 steg frammår. Löser det genom att URL encoda föregående sidas sträng. Detta fungerar perfekt om jag använder asp:literal och skriver ut hela länken med använder jag asp:hyperlink så blir det fel när fler än 2 sidor ligger bakåt.
Kan man stänga av HTMLEncode på en enskild kontroll?
Eller ser ni någon annan lösning?
Vissa webcrawlers kan även att ha problem att tolka adressen rätt om tecknen görs om.
ASP.NET har ju som standard att HTML encoda allt som skickas ut till de inbyggda kontrollerna. Om man har en asp:hyperlink och skickar ut en adress med en frågesträng så omvandlas t.ex. & till & I de allra felsta fall är detta ingen fara eftersom webbläsarna ändå hanterar det korrekt.
&-tecken i en href SKA skrivas &, så det är egentligen mer ett gammalt otyg att okodade &-tecken accepteras av webbläsarna.
Addeladde skrev:
Problemet är att jag skickar med en variabel på varje sida om tidigare sida. Tidigare sida kan ligga i 5 steg frammår. Löser det genom att URL encoda föregående sidas sträng.
Om du ser till att inte dubbelencoda på vägen (dvs. avkoda värdena innan du skickar med dem igen) så borde du inte få några problem.
Jag får problem på det trede steget. När jag klickar på tillbaka så funkar det men när jag trycker på tillbaka på sidan jag hamnade så får jag fel. Den har tagit bort backpage och ersatt det med ett komma tecken.
Du ska inte UrlDecoda något från request "manuellt". Det görs ändå, per automatik. Det jag menade med att värden ska vara avkodade var att du inte ska hämta rå URL-data, vilket jag misstänkte att du gjorde.
Jag har testat att inte urldecoda också. Testade även att göra om alla länkar till literal och skriva ut dem själv men det funkar fortfarande inte. Jag har fått detta att fungera i traditionell asp men då har jag istället för URLencode Escapat backpage strängen.
Skumt att det inte fungerar. Jag fattar inte vad komma tecknet kommer ifrån.