Как я могу получить значение переменной сеанса в статическом методе?

Я использую методы страницы ASP.NET с jQuery.... Как я получаю значение переменной сеанса в статическом методе в C#?

protected void Page_Load(object sender, EventArgs e)
{
    Session["UserName"] = "Pandiya";
}

[WebMethod]
public static string GetName()
{
    string s = Session["UserName"].ToString();
    return s;
}

Когда я компилирую это, я получаю ошибку:

Ссылка на объект требуется для нестатического поля, метода или свойства ' System. Web. UI.Page. Session.get''

58
задан Stephen Kennedy 11 March 2018 в 11:21
поделиться

2 ответа

HttpContext.Current.Session ["..."]

HttpContext.Current возвращает текущий ... ну, контекст Http; из которых вы можете получить доступ: Сеанс, Запрос, Ответ и т. д.

100
ответ дан 24 November 2019 в 18:50
поделиться

Если вы не меняли поток, вы можете использовать HttpContext.Current.Session , как указано jwwishart.

HttpContext.Current возвращает контекст, связанный с потоком. Очевидно, это означает, что вы не можете использовать его, например, если вы начали новый поток. Вам может также потребоваться учитывать гибкость потоков - запросы ASP.NET не всегда выполняются в одном потоке для всего запроса. Я полагаю , что контекст распространяется надлежащим образом, но об этом нужно помнить.

20
ответ дан 24 November 2019 в 18:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: