Avatar billede mach3 Nybegynder
09. december 2004 - 17:37 Der er 12 kommentarer og
2 løsninger

Querystring: Alternativ?

Hej,

Jeg sidder med asp.net og skal overføre variabler i mellem forskellige sider.
Fx:

Response.Redirect("test.aspx?searchCriteria=" + System.Web.HttpUtility.UrlEncode(TextBox1.Text.ToUpper()) + "&searchType=" + DropDownList1.SelectedItem.Value.ToUpper());

Og dette anvendes så af den side der navigeres til:

lblsearchCriteria.Text = Request.QueryString["searchCriteria"];     
lblsearchType.Text = Request.QueryString["searchType"]; 

Alt dette er ok så længe der er tale om en søge funktion, det er jo ligemeget om folk selv skriver argumenterne oppe i adressebaren.

Men det næste jeg skal lave er lidt mere følsomme oplysninger der skal overføres - mit spørgsmål er så, hvordan kan ellers overføre data i mellem to aspx sider?

Det skal ikke være FBI agtigt sikkert (endnu :-)), men det skal helst være mere sikkert end querystrings...

Med venlig hilsen
Avatar billede arne_v Ekspert
09. december 2004 - 17:38 #1
Kan du ikke gemme oplysningerne i sessionen ?
Avatar billede mach3 Nybegynder
09. december 2004 - 17:43 #2
arne_v >> Fortæl fortæl - det har jeg ikke prøvet at arbejde med før :-)
Avatar billede powernodes Nybegynder
09. december 2004 - 17:48 #3
Fx med viewstate:

ViewState["GemteData1"] = DropDownList1.SelectedItem.Value;

og

lblsearchCriteria.Text = ViewState["GemteData1"];
Avatar billede mach3 Nybegynder
09. december 2004 - 19:36 #5
takker - har først mulighed for at kigge på det i nat :-)
Avatar billede burningice Nybegynder
10. december 2004 - 00:17 #6
du kan bruge Server.Transfer... på den måde kan du få fat i den Page-instans som requestet oprindeligt kom fra og på den måde få fat i de værdier der nu hørte til den side.
Avatar billede burningice Nybegynder
10. december 2004 - 00:18 #7
det er faktisk en rigtig rigtig smart feature, som jeg selv først er begyndt at bruge her på det sidste...  især ved overførsel af en masse form-værdier fra en side til en anden er den uundværlig
Avatar billede burningice Nybegynder
10. december 2004 - 00:26 #8
en anden fed ting ved Server.Tranfer er at man kan sende vilkårlig data med over til den næste side ved at gemme dem i selve Contexten:

Side 1:

minLabel.Text = "noget text";
Context.Items.Add("hej", "med dig");
Server.Transfer("side2");

Side 2:
label1.Text = Context.Items["hej");

Response.Write("Indhold af minLabel på side1 var: "+ ((side1)Context.Handler).minLabel.Text);
Avatar billede mach3 Nybegynder
10. december 2004 - 02:11 #9
ok jeg er simpelthen for træt til at arbejde videre nu :-) kigger forbi igen i morgen. tror jeg anvender viewstate.

drop nogle svar. takker...

med venlig hilsen
Avatar billede mach3 Nybegynder
10. december 2004 - 14:57 #10
Hej,

Jeg har problemer med ViewState! Der er ingen data i viewstate når jeg kommer til den ny side. For at teste har jeg  prøvet at læse ViewState igen fra samme side hvor den bliver tilskrevet - der er ingen problemer.

Efter at have tilskrevet ViewState laver jeg en Response.Redirect (uden parametre), og det er så meningen at jeg fra den ny side skal kunne læse disse værdier - men nej der er ingenting i ViewState.

Jeg har ikke sat ViewState til false nogen steder.

Hvad kan der være galt?
Avatar billede snepnet Nybegynder
10. december 2004 - 15:20 #11
viewstate følger ikke med fra den ene side til den anden, men de teknikker som hhv. cyberfessor og arne har peget på er gangbare.
mvh
Avatar billede arne_v Ekspert
11. december 2004 - 12:13 #12
et svar fra mig for session
Avatar billede mach3 Nybegynder
11. december 2004 - 19:51 #13
snepnet, cyberfessor, powernodes >> Kom med et svar :-)
Avatar billede burningice Nybegynder
11. december 2004 - 21:35 #14
en anden mulighed er at poste til en anden side, end siden selv :)

men nej, viewstate er ikke helt det mest optimale. Hvis det var mig ville jeg benytte mig af Server.Transfer, context.Items[] og context.Handler

Det giver mere logisk mening at gemme de ting der har med den pågældende Context deri, fremfor session, plus at man slipper for at bruge kode på at rydde efter sig bagefter.
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