ottengo un errore quando effettuano le seguenti operazioni:C# Impossibile controllare la sessione esiste?
if(Session["value"] != null)
{
// code
}
L'errore che ottengo è questo:
riferimento non impostato a un'istanza di un oggetto.
Perché è questo? Controllo sempre la mia sessione in questo modo? Sto usando MVC Framework, ha qualcosa a che fare con questo?
EDIT:
Il codice è nel costruttore di un controllore:
public class MyController : ControllerBase
{
private int mVar;
public MyController()
{
if (Session["value"] != null)
{
mVar= (int)Session["value"];
}
}
}
vedo un potenziale problema qui con il modo in cui si controlla il valore di sessione.Dovresti averlo come "var myvar = Session [" value "];" Quindi controlla se è nullo e restituiscilo. Esiste la possibilità che la sessione diventi non valida tra il controllo e la trasmissione. - Ho solo pensato che dovresti saperlo :) – TWith2Sugars
Thnx per il suggerimento :) – Martijn
Non hai bisogno di 'var myvar = Session [" value "]; if (myvar! = null) ... 'come' if (Session ["value"]! = null) 'funzionerà bene. Inoltre non mi preoccuperei di ottenere 'Session [" value "]' due volte (una volta per! = Null e una volta per impostare la variabile) come l'ottimizzatore dovrebbe occuparsi di questo. Nota: potresti trovare il [?? operator] (http://msdn.microsoft.com/en-us/library/ms173224.aspx) utile: 'mVar = (int) Sessione [" valore "] ?? 0; '. Questo non risolverà il problema Session null di cui parla questo thread (poiché non sta controllando Session ma il valore da Session). – Trisped