我们有 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])
需要做什么?
只有页面会设置 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])
在 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。尝试这个。