2012-01-21 11 views
0

私は自分のasp.netアプリケーション内のすべてのセッション変数を扱うクラスを持っています。さらに、通常の.netアプリケーションと非常によく似たコードを書くことができるように、オブジェクトをセッション変数に格納することがあります。私はちょうど希望、ASPXページの背後にある私のコードでは、JavaScriptのセッションオブジェクトメンバ変数の背後にあるasp.netコードにはどうやってアクセスしますか?

public static MySessinClass Current 
    { 
     get 
     { 
      MySessionClass session = (MySessionClass)HttpContext.Current.Session["MySessionClass"]; 
      if (session == null) { 
       session = new MySessionClass(); 
       HttpContext.Current.Session["MySessionClass"] = session; 
      } 
      return session; 
     } 
    } 

だから、例えば:

は、ここでセッション変数にオブジェクトです:

public cUser User 
{ 
    get { return (cUser)HttpContext.Current.Session["CurrentUser"]; } 
    set { HttpContext.Current.Session["CurrentUser"] = value; } 
} 

そしてここMySessionClassのインスタンスであります

int userID = MySessionClass.Current.User.UserID; 

このようにすると効果的です。私はそれが大好きです。しかし、私は私のaspxページからJavaScriptで同じ原則適用したい:私はそのWebページにアクセスしたとき

var userID = <%=MySessionClass.Current.User.UserID%>; 

をしかし、私はそれがMySessionClassオブジェクトを認識しないというエラーを取得します。

私がいるコンテキストを考えれば、オブジェクトから、そのセッションからのUserID変数をjavascriptで参照する最良の方法は何でしょうか?たぶん、それを参照するための私の構文がオフになっているか、私はそれを間違った方法で行っています。助けていただければ幸いです。ありがとうございます。

答えて

3

あなたは静的メンバとしてそれを定義したので、ページ・タイプを使用して参照を修飾する必要があります:

var userID = <%=MyPageType.MySessionClass.Current.User.UserID%>; 

十分なはずです。

+0

ページタイプの意味がわかりません。 "MySessionClass"はページではなく、単純なMySessionClass.csファイルです。それはHttpContext.Current.Sessionを使ってセッション変数にアクセスします。 – ROFLwTIME

+1

+1ページタイプは '.aspx.cs'ファイルの上にあります。 'パブリック部分クラスYourPageType:Page'。あなたの 'MySessionClass'が別のファイルにある場合は、その名前空間を指定します。 '<%= MyNamespace.MySessionClass.Current.User.UserID%>' – Andomar

+0

私たちはそれをどのように知ることを意味していますか?関連するすべてのコードを公開してください。あなたの現在の例から、私はCurrentがあなたのページのメンバかこの静的なセッションクラスかどうかわかりません。さらに、正しい名前空間をASPXページのdirectivecsにインポートしていますか? – x0n

関連する問題