De här filerna har jag (väldigt förenklat): Nu har jag googlat och läst på lite och inser att statiska variabler inte är lösningen på mitt problem.Förbryllad, kommer åt statisk variabel med ajax
Default.aspx (sidan som visas)
Ajax.aspx (en sidas kod som läses in via en ajax request.)
Current.cs (en statisk klass)
I Default.aspx get jag värden åt attributen i den statiska klassen "Current".
I Default.aspx gör jag även en ajax-request som hämtar Ajax.aspx
Det som nu förbryllar mig är att jag i Ajax.aspx kommer åt de statiska värden som jag satte i Default.aspx. Hur kommer det sig? Borde den inte "Resetta" när en ny sida (Ajax.aspx) laddas?
Och vad händer ifall 2 olika personer använder sidan samtidigt?
ex:
1. Person1 öppnar default.aspx och Current.Layout sätts till "Standard"
2. Person2 öppnar default.aspx och Current.Layout sätts till "Startsida"
3. Person1 Gör en ajax request som ska returnera Current.Layout. Kommer svaret att bli "Standard" eller "Startsida"?
Om det är så att statiska variabler delas bland alla besökare så passar det inte riktigt mina ändamål. Vad är då bästa alternativet om man vill ha en publik variabel som kan accessas varifrån som helst (user controls etc)? Den behöver inte vara tillgänglig mellan sidbyten men jag vill kunna sätta värden i page_load som sedan kan användas i layouts, usercontrols etc.Sv: Förbryllad, kommer åt statisk variabel med ajax
Jag hittade en lösning men vet inte om den är prestandamässigt bra, vad tror ni?
<code>
public static string Layout
{
get
{
return (string)HttpContext.Current.Items["Layout"];
}
set
{
HttpContext.Current.Items["Layout"] = value;
}
}
</code>