从通过AJAX调用的静态方法访问会话

时间:2012-11-13 22:20:06

标签: c# asp.net ajax page-lifecycle

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

我有一个需要访问Session的静态方法。但是,在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在被调用时为空。

在理解页面生命周期时,我确实很可怕。任何人都可以了解这里发生的事情吗?我能做些什么来解决这个问题?

1 个答案:

答案 0 :(得分:4)

怎么样?

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

MSDN::How to: Use the WebMethod Attribute