1

我们有 ASP.Net 应用程序。在普通 aspx.cs 页面上,我可以像这样访问会话,

 Convert.ToString(Session[Resources.AMS.SESSION_USERID]);

但是在 APP_CODE 文件夹中,当我尝试时,我无法获得会话值,它给出了 NULL!

Convert.ToInt32(System.Web.HttpContext.Current.Session[Resources.AMS.SESSION_USERID])

需要做什么?

4

2 回答 2

1

只有页面会设置 Web 上下文值。

App_Code 是您可以存储类文件的地方,请参见此处类是对象的模板。您只在运行时赋予它价值。

您可以做的是向您的班级添加一个属性。

private int _sessionID;
public int SessionID
{
    get
    {
        return _sessionID;
    }
    set
    {
        sessionID = value;
    }
}

然后在你的代码后面,(aspx.cs)

var myClass = new myClass();

myClass.SessionID = Convert.ToInt32(System.Web.HttpContext.Current.Session[Resources.AMS.SESSION_USERID])
于 2018-08-30T02:09:22.617 回答
0

在 app_code 文件夹中的一个类中,我有这个:

public static class SessionTest
{
    public static string OutputSession()
    {
        return System.Web.HttpContext.Current.Session.SessionID.ToString();
    }
}

在 aspx.cs 页面中,我有这个:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%
    Response.Write(SessionTest.OutputSession());
%>

它输出会话 ID。尝试这个。

于 2013-06-07T09:22:18.103 回答