2017-10-09 14 views
1

J'essaie, pour éviter d'utiliser des chaînes query, d'utiliser une variable de session pour transmettre la valeur souhaitée. Je fais cela d'une classe à un gestionnaire.Variables de session Asp.NET C# de la classe au gestionnaire

Dans la classe j'utilise:

HttpContext.Session["name"] = "Value"; 

Dans le gestionnaire j'utilise:

var name = context.Session["name"]; 

J'ai déjà ajouté IReadOnlySessionState ou IRequiresSessionState mais les variables de session restent nulles.

De l'aide?

Répondre

1

Je pense que vous créez de nouveau le contexte. vous devez utiliser la même session en utilisant HttpContext.Current. Essayez Code comme ci-dessous et Référer Commentaires ce que j'ai ajouté ci-dessous.

string firstName = "Jeff"; 
    string lastName = "Smith"; 
    string city = "Seattle"; 

    // Save to session state in a Web Forms page class. 
    Session["FirstName"] = firstName; 
    Session["LastName"] = lastName; 
    Session["City"] = city; 

    // Read from session state in a Web Forms page class. 
    firstName = (string)(Session["FirstName"]); 
    lastName = (string)(Session["LastName"]); 
    city = (string)(Session["City"]); 

    // Outside of Web Forms page class, use HttpContext.Current. 
    HttpContext context = HttpContext.Current; 
    context.Session["FirstName"] = firstName; 
    firstName = (string)(context.Session["FirstName"]); 
+0

Hi. Merci pour votre réponse ... mais ça ne marche pas ... Je mets la valeur dans la classe mais, sur le gestionnaire, c'est toujours nul. – user3330412