私は自分の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で参照する最良の方法は何でしょうか?たぶん、それを参照するための私の構文がオフになっているか、私はそれを間違った方法で行っています。助けていただければ幸いです。ありがとうございます。
ページタイプの意味がわかりません。 "MySessionClass"はページではなく、単純なMySessionClass.csファイルです。それはHttpContext.Current.Sessionを使ってセッション変数にアクセスします。 – ROFLwTIME
+1ページタイプは '.aspx.cs'ファイルの上にあります。 'パブリック部分クラスYourPageType:Page'。あなたの 'MySessionClass'が別のファイルにある場合は、その名前空間を指定します。 '<%= MyNamespace.MySessionClass.Current.User.UserID%>' – Andomar
私たちはそれをどのように知ることを意味していますか?関連するすべてのコードを公開してください。あなたの現在の例から、私はCurrentがあなたのページのメンバかこの静的なセッションクラスかどうかわかりません。さらに、正しい名前空間をASPXページのdirectivecsにインポートしていますか? – x0n