0

わかりました、私はこれに少し立ち往生しています。私の問題はページのライフサイクルにあると思いますが、問題を解決する方法がわかりません。

セッションへのアクセスが必要な静的メソッドがあります。ただし、このメソッドは AJAX 呼び出しの途中で呼び出されます。コードは次のようになります。

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

Web メソッド:

[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 が null であることが示されます。

ページのライフサイクルを理解することになると、私は確かにひどいです。ここで何が起こっているのか、誰かが光を当てることができますか? そして、問題を解決するために何ができますか?

4

1 に答える 1

4

どうですか?

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

MSDN::方法: WebMethod 属性を使用する

于 2012-11-13T22:37:16.380 に答える