Asp.NET C#Session从类到处理程序的变量

时间:2017-10-09 10:23:25

标签: c# asp.net class session handler

我正在努力避免使用查询字符串来使用会话变量来传递所需的值。 我正在从一个类到一个处理程序。

在课程中我使用:

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

在我使用的处理程序中:

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

我已添加IReadOnlySessionStateIRequiresSessionState但会话变量仍为空。

一些帮助?

1 个答案:

答案 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"]);