webForumDet fria alternativet

Hur göra när ViewState inte fungerar över flera sidor o man inte vill köra session?

.NET

3 svar · 335 visningar · startad av CokeLight

Medlem sedan juni 2000504 inlägg
Frågan#1

Hejsan :)

Jag har en default.aspx som innehåller ett par user controls. uc1 har en hyperlänk som skickar ett värde till default.aspx som tar emot den med Request.Params["param"].

if(Request.Params["param"] == "true")
   ViewState["ShowCopy"] = true;

Det jag skulle vilja göra är att under uc2 kunna sätta:

if(Convert.ToBoolean(ViewState["ShowCopy"]))
   bc.Visible = true;

Men såsom jag förstår det kan ViewState inte delas över flera sidor. Jag vill helst undvika Sessions eftersom det belastar servern. Hur kan man lösa det problemet eller hur gör ni? :)

Medlem sedan juni 2000504 inlägg
#2

... förutom att skicka extra requests eller cookies kommer jag inte på nåt.. provade en stund att ha en separat fil som jag kallade CommonLogic.cs där jag tänkte att jag kunde ha properties(get/set) som jag behövde o sen att jag instansierade CommonLogic på de sidor jag behövde den gemensamma variabeln men det blev lite fel eftersom de variablerna blev satta (med set) varje gång propertyn anropades...

...men det kanske är session (eller cookies) som gäller då som i gamla asp :)

Medlem sedan juni 20019 024 inlägg
#3

Du vill alltså skicka värdet från en user control till aspx-sidan?

Använd HttpContext.Items. Då kan du skicka data mellan samtliga filer som ingår i http-anropet.

Medlem sedan juni 2000504 inlägg
#4

aha, men super, det var nåt sånt jag letade efter.. ska läsa på om det för o se hur det fungerar i mitt sammanhang.. tack Pace :)

Den där HttpContext.Items grejen tappar alltså inte värde som skickats fram och tillbaka mellan olika user controls samt aspx sidan då..? oki, ska läsa på o återkomma om jag fastnar..

264 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
134 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)