Gå til innhold

Anbefalte innlegg

Det er mulig jeg tenker heeeeelt feil her nå.

 

La oss si at jeg har en database hvor folk kan registrere ting.

 

Man kan registrere x antall Ting-A og x antall Ting-B.

I tillegg kan man registrere x antall Ting-A2 som hører til Ting-A.

Ting-A og Ting-B tilhører Tingliste.

 

Jeg har nå en side som lister opp dine Ting-A i en tabell, og Ting-B i en annen tabell.

Begge tabellene har en "Legg til ny ting" knapp i bunnen. Når jeg klikker "Legg til ny Ting-A" så blir jeg sendt til en ny side.

 

Problemet mitt er at jeg er ikke helt sikker på hvordan jeg skal sende med hvilken Tingliste det skal registreres på...

Jeg har vært innom å dynamisk legge til ?tingliste=2 i href på lenken, men jeg liker ikke at interne id'er vises i locationbar.

Jeg har også vært inne på å gjøre lenken til en knapp, og deretter legge Tingliste-id'en i en Session variabel, men jeg føler at dette kan bli et hull i forhold til hvis man skal redigere andre Tinglister. (Huske å sette den til null etc).

 

Er det noen som har noen gode forslag på hvordan gjøre dette? Det virker som en veldig banal sak, og det virker nesten som at det blir for enkelt for WebForms å behandle ;)

 

-C-

Endret av ChristianW
Lenke til kommentar
Videoannonse
Annonse

Heisan

du har så vidt jeg vet nevnt de to mulighetene du har, altså legge ID'n i adressen eller bruke sesjon variabler. Personlig så liker jeg sesjonvariabler veldig godt og bruker disse aktivt i properties for å gjøre dataene gjeldende for alle web sidene. Veldig effektivt.

 

Når det gjelder HREF alternativet så kan du jo eventuellt kryptere ID'en sllik at den ser slik ut:

http://www.noe.com/Sidex.aspx?id=kjkht5678uiyutr45riftygh

 

Dermed blir jo de interne IDene skjult.

 

Hvis du ikek orker å implementere kryptering så kan du jo veldig enkelt lage deg en egen koding for å få til en relativt safe kryptering. Skal mye gjetting til for å knekke slikt selv om det er ganske banalt. Bruk f.eks. XOR med F'er for å snu bittene i tallet. Dette er en enkel men effektiv måte å "skjule" innholdet på. Hvis du i tillegg ønsker at tallet i linken ikke skal peke p noen records så kan du jo legge til en verdi som sørger for at tallet blir for stort

varekode + FF000000 f.eks. XOrer du da med nøkkelen 00FFFFFF så vil kunn bittsa i selve ID'n bli "kryptert"

Lenke til kommentar

Enten querystring eller via requestens context. Sidens HttpContext omslutter en enkelt request og følger med til neste side om du bruker Server.Transfer som redirect. Det vil ikke funke med Server.Redirect, siden den går via klienten (http 300 melding) og lager en ny request.

 

Når requesten er avsluttet kastes den, slik at man ikke trenger tenke på å rydde opp, som man må med Session. Session er global og skal ikke brukes til ting som ikke er globale for sesjonen. Høres selvsagt ut, men det er mange som bruker Session til alt mulig annet og lager et h...... for dem som kommer og skal forvalte systemene senere.

 

På første side legger du dem inn

   var list = new MinListe();
  // sett sammen liste

  Context.Items["list"] = list;
  Server.Transfer("side2.aspx");

 

Og leser den ut på neste:

private void Page_Load(object sender, System.EventArgs e) {

  MinListe l = (MinListe)Context.Items["list"];
  ...
}

Lenke til kommentar

Jeg endte opp med å lage meg et system med sessionvariabler. Funker som fan. Alt er nesten perfekt, eneste problemet nå er bug'en i ModalPopupExtender som gjør at verdier kommer dobbelt og trippelt jo flere ganger man bruker den... Men jobbet meg rundt det ;)

 

Takk for alle gode innspill :)

 

-C-

Lenke til kommentar
...

På første side legger du dem inn

   var list = new MinListe();
  // sett sammen liste

  Context.Items["list"] = list;
  Server.Transfer("side2.aspx");

 

Og leser den ut på neste:

private void Page_Load(object sender, System.EventArgs e) {

  MinListe l = (MinListe)Context.Items["list"];
  ...
}

 

GENIALT!! Denne viste jeg ikke om. Takker for tipset...

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...