Задайте объект Session внутри WebMethod (используя EnableSession = true), не сохраняя значение

Я передаю переменную в сеанс через WebMethod

[WebMethod(EnableSession = true)]
[ScriptMethod(UseHttpGet = true)]
public static bool lookEventQ(int eventuid)
{
    HttpContext.Current.Session["Q_EVENT_ID"] = eventuid;
    return true;
}

Вызов с помощью jQuery:

 $.ajax({
                url: "<%= ResolveUrl("~/public-conference.aspx")%>/lookEventQ?eventuid=" + event,
                type: 'GET',
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (msg) {
                    //DO STUFF
                }
            });

Но затем на другой странице попытайтесь получить доступ к этой переменной сеанса:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        if (int.TryParse(Request.Form.Get(CONST_postKey), out eventID))
        {
            if(eventID == int.Parse(HttpContext.Current.Session["Q_EVENT_ID"])){
                //Do other stuff
            }
        }
    }
}

Но когда tring для доступа, сеанс пуст

Ответ 1

Нашел решение. Поскольку asp файл не содержит ScriptManager с свойством EnablePageMethods, установленным в true, сеанс не поддерживается.