会话状态值不会出现在我的标签中

时间:2015-08-23 09:21:14

标签: c# asp.net session-state

我在c#asp.net上为我的网页打了一个点击计数器。我尝试使用会话状态从一个Web表单显示计数器的字符串值,并将其放在另一个Web表单中。它工作,但只有在我来回导航链接以测试增量之后,否则我第一次加载页面时,命中计数器计数不会显示在标签上。任何线索我怎么能解决这个问题,我想到了使用cookie。但即使第一次访问者来到我的页面,我的点击计数器仍然无法正确显示。我非常渴望解决这个问题。

这是我正在尝试的会话状态代码。

尝试显示标签的表单

#include <iostream>
using namespace std;

class A {
public:
    virtual void foo() {
        cout<<"A"<<endl;
    }
};

class B: public virtual A {
public:
    virtual void foo(){
        cout<<"B"<<endl;
    }
};

class C : public virtual A {
public:
    virtual void foo(){
        cout<<"C"<<endl;
    }
};

class D : public B, public C {
    public:
        void print(){
            foo();
        }
};

int main () {
    D d;
    d.print();
    return 0;
}

我试图从

获取会话状态值的表单
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.Web.Configuration;

  namespace VideoWebsite
  {
    public partial class WebForm2 : System.Web.UI.Page
    {
       protected void Page_Load(object sender, EventArgs e)
      {

        if (!Page.IsPostBack)
        {
                string field1 = (string)(Session["field1"]);
                Label1.Text = field1;
        }

       }

    }

1 个答案:

答案 0 :(得分:1)

首次访问时不会显示,因为该会话变量尚不存在。您只能在第二个Web表单中创建它。

您应该将从数据库中读取信息的代码移动到global.asax中的会话创建事件处理程序。

抱歉,我无法发布代码,我是从Android应用中输入的。

protected void Session_Start(object sender, EventArgs e)

       {

         // Your Hits read code goes here

       }