如何在javascript中访问会话对象成员变量后面的asp.net代码?

时间:2012-01-21 16:50:12

标签: c# javascript asp.net

我有一个类来处理我的asp.net应用程序中的所有会话变量。此外,我有时会在会话变量中存储对象,以便允许我编写与普通.net应用程序非常相似的代码。

例如,这是会话变量中的对象:

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

这是MySessionClass的实例:

    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;
        }
    }

所以,在aspx页面后面的代码中,我会做一些像

这样的事情
int userID = MySessionClass.Current.User.UserID;

这很有效,我喜欢它。但是,我想在我的aspx页面的javascript中应用相同的原理:

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

但是,当我访问该网页时,我收到一条错误消息,指出它无法识别MySessionClass对象。

因此,考虑到我所处的上下文,在javascript中从对象,会话引用UserID变量的最佳方法是什么?也许我引用它的语法是关闭的,或者我的方法是错误的。任何帮助将不胜感激,谢谢。

1 个答案:

答案 0 :(得分:3)

由于您已将其定义为静态成员,因此您需要使用页面类型限定您的引用:

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

这应该足够了。