Jag har ett gäng HtmlAnchors på min sajt. Till dessa lägger jag dynamiskt ett attribut med värde när det behövs. Problemet är att tecken som å ä ö skrivs ut som å ä ö i källkoden och det går inte ihop med min teckenkodning.
Problemet uppstår när jag lägger till runat="server" till <a href=...>. Har kollat lite på Encoding i .NET men hittar inte riktigt det jag behöver. Tacksam för hjälp!
DDinoMedlem sedan sep. 20011 914 inlägg Vad är det för attribut, en querystring parameter eller...
Nej. Jag lägger till ett vanligt class-attribut.
m4.attributes.add("class","active")
En länk ser ut så här:
<a href="default.aspx?CatId=4& amp;SubId=0" id="m4"
title="Hj&auml;lp i webbutvecklingen plus annat sm&aring;tt & amp; gott." runat="server">artiklar</a>
Det konstiga är att & amp; inte blir till ett & i källkoden när å ä ö blir det de blir.
Jag lade till mellanslag mellan & och amp; i koden.
Ingen som har någon idé än? & blir till & i själva taggen men ej i beskrivningen av länken. Alltså:
<a href="default.aspx?x=1&i=3" ...>Här förblir &amp; just &amp;</a>
Jesper TMedlem sedan nov. 20017 144 inläggfinns inte mostvarande urlencode i .net?
Jodå, det finns. Jag löste dock problemet med ett "fulhack". De a-element som har & i url:en gjorde jag så att jag lade till url-en dynamiskt till dem.
m2.attributes.add("href","default.aspx?CatId=2&subId=0")
m4.attributes.add("href","default.aspx?CatId=4&SubId=0")
Fult men fungerande. Tyvärr så blir dock ä etc. till ä i stället. :l Jag kan ta det men det är irriterande..
System.Web.HttpUtility.UrlEncode("här ska det in en url")
Nice. Men hur encodar man så att å ä ö blir å ä ö? Inte med UrlEncode eller HtmlEncode i alla fall.. :)
Problemet är då att å etc. blir &aring; i stället och således skrivs fel text ut. :l
du kan ju inte köra encode på text som redan är encodad...då blir det dubbelt (går iofs att köra decode två gånger för att lösa upp det men det är ju inget bra)
SKa du koda en url så kör du urlencode/decode beroende på vilket håll du vill koda. Text som däremot ska visas på htmlsidan sak du ju då köra htmlencode/htmldecode på.
Det är .NET-motorn själv som gör om alla mina & i mina länkar till &. Det är jättebra i själva url-en men inte i title-attributet där jag beskriver länken. Problemet är alltså att den encodar lite för mycket.. När jag enbart har denna kod så händer detta:
m2.attributes.add("href","default.aspx?CatId=2&subId=0")
m2.attributes.add("class","active")
m2 är en HtmlAnchor som ser ut så här i själva koden:
<a title="Diverse sm&aring;bitar ur vardagen." id="m2" runat="server">fotogalleri</a>
När man kollar källkoden i webbläsaren sedan så ser samma länk ut så här:
<a href="default.aspx?CatId=2&amp;subId=0" id="m2" title="Diverse småbitar ur vardagen.">fotogalleri</a>
Märkligt va?
jo men den vet ju inte att den attribut du ska lägga på är en länk, eller hur? Kan du inte köra en hyperlink istället, typ:
<asp:HyperLink Runat="server" ID="lnkMyLink" NavigateUrl="http://minsökväg.se">test!!!!</asp:hyperlink>
...då kan du ju sätta:
lnkMyLink.navigateurl("default.aspx?CatId=2&subId=0")
Jag gjorde det förut och exakt samma problem uppstod.
lnkMyLink.navigateurl(System.Web.HttpUtility.UrlEncode("default.aspx?CatId=2&subId=0"))
Även med denna?
DDinoMedlem sedan sep. 20011 914 inlägg Det kan inte vara så att webbläsarna har någon typ av inbyggd decode funktion som gör detta på tex. title-attributet.
Då blir url-en ännu konstigare, vilket jag sett tidigare. (Plus att jag inte har problem med själva url-en utan andra attribut i länkarna.)
Jag vill enbart lösa problemet med att å etc. blir till &aring; när jag har dynamiska länkar.
Det är helt klart Microsoft som jävlas och gör om ALLA & till & i både href-attribut, title-attribut etc.. ;)
DDinoMedlem sedan sep. 20011 914 inlägg Om du jämför det i Opera och IE så borde du se en skillnad. Vilken då indikerar på att det kan ligga i webbläsarna.
Jag kan tyvärr inte se min källkod i Opera, men exakt samma källkod skrivs ut i IE och Firefox i alla fall. Dvs å etc. blir till &aring;.