0

好的,我有点卡在这个上。我认为我的问题在于页面的生命周期,但我不确定也不确定如何解决问题。

我有一个需要访问会话的静态方法。但是,此方法在 AJAX 调用过程中被调用。代码如下所示:

$(object).click(function() {
    Library.Ajax.GetData(someParameter, function(results) {
         //do call back code
    });
});

网络方法:

[WebMethod]
public List<string> GetData(string parameter)
{
      return new Library.Class().GetData(parameter);
}

C# 类:

public List<string> GetData(string parameter)
{
     //working with parameter & stuff
     CallStaticMethod();
     //return things
}

静态方法:

 public static CustomClass CallStaticMethod()
 {
    var data = HttpContext.Current.Session["variable"];
    //do other things
 }

在页面加载时,会话有数据。调用此静态方法时,页面尚未回发或重新加载。但是,在每个方法调用中放置一个断点表明 HttpContext.Current.Session 在它们被调用时为空。

在理解页面生命周期方面,我承认我很糟糕。谁能阐明这里发生了什么?我能做些什么来解决这个问题?

4

1 回答 1

4

怎么样?

[WebMethod(EnableSession = true)]
public List<string> GetData(string parameter)

MSDN::How to: 使用 WebMethod 属性

于 2012-11-13T22:37:16.380 回答