Avatar billede set Nybegynder
11. april 2009 - 22:52 Der er 9 kommentarer og
1 løsning

finde en strengværdi i URL

Hej
Jeg sidder med et lille problem i C#.

jeg har en asp:tablecell hvori jeg har en asp:hyperlink
hvor jeg har en NavigateURL til en anden aspx side.
Jeg overfører en værdi som f.eks. ser således ud

NavigateUrl="../../../../Billeder.aspx?Billed=images/2008/Juni_2008/Jagthytten bygges/Billed 001.jpg"

Når jeg er på den pågældende side som jeg går til, vil jeg gerne kunne uddrage en tekst fra querystringen.
jeg vil f.eks. gerne bruge den sidste del af strengen, i dette tilfælde navnet på billedet.
Hvordan kan dette lade sig gøre?
Håber på hjælp fra eksperten.
Avatar billede lasserasch Juniormester
11. april 2009 - 23:04 #1
Det bedste ville være at du tilføjede et ID mere til din URL.

F.eks.

NavigateUrl="../../../../Billeder.aspx?Billed=images/2008/Juni_2008/Jagthytten bygges/Billed 001.jpg&text=Billed 001.jpg"

Så ville du kunne trækker det ud med "request.querystring["id"].tostring()"

Ellers kunne du splitte din URL op på / tegnet og så trækker sidste værdi ud, men den metode er efter min mening en klodset løsning.

Når du laver din URL i dit hyperlink er det vel ikke noget problem at indsætte den tekst du gerne vil kunne trække ud senere?

Mvh.
Lasse
Avatar billede CCodam Nybegynder
11. april 2009 - 23:04 #2
Du kan lave en split på strengen med "/", finde antallet af objekter i arrayet og så benytte dig af det sidste objekt...

Du må skrive hvis du har behov for en mere dybdegående beskrivelse :)
Avatar billede lasserasch Juniormester
11. april 2009 - 23:05 #3
Det skulle selvfølgelig have været : request.querystring["text"] og ikke ["id"].... :-)
Avatar billede set Nybegynder
11. april 2009 - 23:24 #4
jeg kan godt tænke mig at se det der med split i URL, idet jag allerede har lavet querystreng på flere hundrede billeder nu.
jeg syntes ikke rigtigt jeg har lyst til at gå tilbage for at lave min string om igen hvis der er en anden og hurtigere maåde at lave det på.
Avatar billede CCodam Nybegynder
12. april 2009 - 00:01 #5
string[] urlArray = NavigateUrl.Split("/");
//Splitter din URL og ligger den ind i et array
//Array[0] = ..  Array[1] = ..  Array[2] = ..  Array[3] = ..
//Array[4] = Billeder.aspx?Billed=images
//Array[5] = 2008
//Array[6] = Juni_2008
//Array[7] = Jagthytten bygges
//Array[8] = Billed 001.jpg

string picName = urlArray[urlArray.Lenght - 1];
//Gemmer den sidste string (Billed 001.jpg) i Arrayet i picName
//urlArray.Lenght er 9, da der er 9 objekter
//men da arrayet starter på 0, er det sidste Array[8], derfor "- 1"


Håber du forstår, eller skal jeg gerne igen uddybe yderligere :)
Avatar billede set Nybegynder
12. april 2009 - 00:01 #6
er der nogen der har en løsning på ovenstående?
Avatar billede Syska Mester
12. april 2009 - 18:54 #7
set#
Er der ikke allerede kommet 2 løsninger ? Leder du efter flere ?

Du kan jo også bruge Regex ... ?

Men ... kommenter lige de løsninger hvorfor du ik' vil bruge dem?

eller er det fordi du ik' har set dem?
Avatar billede set Nybegynder
12. april 2009 - 21:48 #8
Jeg har nu brugt CCodam's metode med en lille omskrivning.

char[] splitter = { '/' };
string[] urlArray = Request.QueryString["billed"].Split(splitter);

string picName = urlArray[urlArray.Length - 1];

this.Title = picName;

Så gider du at smide et svar.
Avatar billede CCodam Nybegynder
12. april 2009 - 23:32 #9
Yep, glæder mig det lykkedes for dig :)
Avatar billede mausing Nybegynder
04. maj 2009 - 21:12 #10
Manne kunn også have brugt lastIndexOff

string img = url.substring(url.lastindexof("/"),url.length - url.lastindexof("/"))

Så Så fik du den direkte og udenroden rundt i et array
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester