我的一个价值是反映MVC中的另一个应用程序?

时间:2011-05-24 11:38:51

标签: asp.net-mvc asp.net-mvc-3

当我在不同浏览器或同一浏览器中打开两个应用程序时,我在一个应用程序中添加的值对另一个应用程序是可见的。

我做了一个会话助手,但我仍然有问题。

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

1 个答案:

答案 0 :(得分:1)

静态字段/属性在您从浏览器发出的所有请求中共享。因此,即使您将其保存到会话中,但每个SessionHelper都会引用相同的静态字段。改为使用实例字段。