12. november 2006 - 01:23Der er
13 kommentarer og 2 løsninger
Bevare objekter
Jeg har en klasse som jeg skal ændre indhoold af på forskellige websider. Side1 opretter et objekt og tildeler nogle værdier. Derefter ledes man videre til side2, hvor man indtaster nogle flere værdier til objektet. Er der er smartere måde at bevare objektet på end at gemme det i en session-variabel hele tiden ?
Det er en bruger der skal udfylde en del oplysninger, som der ikke er plads til på en enkelt side. Derudover er nogle af felterne afhængige af tidligere valg, så det er oplagt at lægge det på forskellige sider. Siderne udfyldes efter hinanden og til sidst skal data gemmes i database.
Var det oplysninger nok ?
Tænkte at det kunne være Microsoft havde funde på noget smart, der kunne kompensere for at http er state-less, uden at man selv skulle programmere det...
Og kompensationen for stateless i ASP.NET hedder ViewState og benyttes af de medfølgende kontroller. I ASP.NET 2.0 findes der af samme skuffe ControlState. Mvh
Eksempel: Under Pageload oprettes et objekt med nogle parametre. Når der trykkes på en knap der skal sætte et par ekstra parametre har den jo glemt alt om objektet. Hvordan bruger man så viewstate eller Controlstate til at den husker objektet ? Eller skal man slutte alle procedurer med at gemme objektet i en sesseionvariable og starte alle med at hente den ?
bemærk at session og viewstate må opføre sig lidt forskelligt ved 2 samtidigt åbne browser vinduer til dine sider, men der er nok størst sandsynlighed for at du ønsker viewstate funktionaliteten
Men sessions bliver jo gemt "pr. browervindue der er åbent", så hvis man gemmer data i f.eks både viewstate og i session, så burde de da være ens, og begge dele er da uafhængige af andre browservinduer/sessions. Jeg er ikke helt med på hvad du mener.
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.