Where I should declare a session variable in asp.net

旧城冷巷雨未停 提交于 2019-11-30 13:56:48

Do it in the Session_Start method in your Global.asax like so...

protected void Session_Start(object sender, EventArgs e)
{
    Session["AttemptCount"]=new Hashtable();
}

Update:

Then simply just do a check to see if the session variable exists, if it doesn't only then create the variable. You could stick it in a property to make things cleaner like so...

public Hashtable AttemptCount
{
    get 
    {
        if (Session["AttemptCount"] == null)
            Session["AttemptCount"]=new Hashtable();
        return Session["AttemptCount"];
    }
}

And then you could just call on the property AttemptCount wherever you need like so...

public void doEvent(object sender, EventArgs e)
{
    AttemptCount.Add("Key1", "Value1");
}

You could make a property like this in your page:

protected Hashtable AttemptCount
{
  get
  {
    if (Session["AttemptCount"] == null)
      Session["AttemptCount"] = new Hashtable();
    return Session["AttemptCount"] as Hashtable; 
  }
}

then you can use it without having to worry:

protected void Page_Load(object sender, EventArgs e)
{
  this.AttemptCount.Add("key", "value");
}

test if it exists first

 protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
       if(Session["AttemptCount"] == null)
       {
          Session["AttemptCount"]=new Hashtable(); //Because of this line.
       }
    }   
}

though the session_start is better, you only need to uses it on one page but you can create it for each session.

Shiv Shankar Mahla
Hashtable hastable_name=new Hashtable()
Session["AttemptCount"]=hastable_name

Look at Global.asax and the Application_Started (I think) and there is one for session started too.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!