我正在努力避免使用查询字符串来使用会话变量来传递所需的值。 我正在从一个类到一个处理程序。
在课程中我使用:
HttpContext.Session["name"] = "Value";
在我使用的处理程序中:
var name = context.Session["name"];
我已添加IReadOnlySessionState
或IRequiresSessionState
但会话变量仍为空。
一些帮助?
答案 0 :(得分:1)
我认为你再次创造了新的背景。您应该使用HttpContext.Current
使用相同的会话。
尝试代码如下所示,并参考评论我在下面添加的内容。
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"]);