当我在不同浏览器或同一浏览器中打开两个应用程序时,我在一个应用程序中添加的值对另一个应用程序是可见的。
我做了一个会话助手,但我仍然有问题。
public class SessionHelper
{
#region Strongly typed variable
public static CreateAccountModel tmpmodel = null;
public static string errMsg = string.Empty;
public static List<PointOfSalesModel> CurrPosModelArr = null;
public static List<PointOfSaleUsersModel> currAddedClerks = null;
public static List<AuthorizedIPsModel> currAddedIPs = null;
public static bool isPosDataLodedFirstTime = false;
public static string isEditGridClickedVal = "No";
public static int AccountId = -1;
#endregion
public SessionHelper Current
{
get
{
SessionHelper currentSession = HttpContext.Current.Session["_session"] as SessionHelper;
if (currentSession == null)
{
currentSession = new SessionHelper();
HttpContext.Current.Session["_session"] = currentSession;
}
return currentSession;
}
}
}
答案 0 :(得分:1)
静态字段/属性在您从浏览器发出的所有请求中共享。因此,即使您将其保存到会话中,但每个SessionHelper
都会引用相同的静态字段。改为使用实例字段。