0

次のように、カスタム クラス内のセッション変数にアクセスしようとしています。

コントローラ:

    public void RemoveMachinesListChanged(object sender, RemovePackageEvent e)
    {
        PackageActionStatus.Current.Machines = e.Machines;
        // Dictionary<int, int> machines =  e.Machines;
    }

public class PackageActionStatus
{
    public static PackageActionStatus Current
    {
        get
        {
            HttpContextWrapper context = new HttpContextWrapper(System.Web.HttpContext.Current);
            var session = (PackageActionStatus)context.Session["PackageActionStatus"];
            if (session == null)
            {
                session = new PackageActionStatus();
                context.Session["PackageActionStatus"] = session;
            }

            return session;
        }
    }

    private Dictionary<int, int> machines;

    public Dictionary<int, int> Machines
    {
        get
        {
            return this.machines;
        }
        set
        {
            if (this.machines == null)
            {
                this.machines = new Dictionary<int, int>();
            }

            this.machines = value;
        }
    }
}

ここで達成しようとしているのは、AJAX 呼び出しを介してセッション変数との間で値を保存および取得することです。ajax HttpContext を使用するたびに null のようです。どうすればいいですか?ありがとう

4

1 に答える 1

0

HttpContextは、リクエストのライフサイクルの特定のポイントで使用できます。また、リクエストのスレッドでのみ利用できます。

リクエストのインスタンスを入力パラメーターとしてIHttpHandler持つメソッドを持つを実装します(MSDN http://msdn.microsoft.com/en-us/library/system.web.ihttphandler.aspxで詳細を確認してください)。ProcessRequestHttpContext

ProcessRequestここでサンプル実装を確認してください:http: //msdn.microsoft.com/en-us/library/system.web.ihttphandler.processrequest.aspx

于 2012-11-12T10:33:54.473 に答える