C#Session不会在页面加载时递增

onT*_*net 0 c# asp.net

所以我有一个

<asp:label ... >

我想隐藏在用户访问我们网站上的3个页面之后.所以我在master.cs页面上使用了page_load来创建会话

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            createSession();
            pageCounter.Text = Session["PagesViewed"].ToString();
            return;
        }
        Session["PagesViewed"] = ((int)Session["PagesViewed"] + 1);
        pageCounter.Text = Session["PagesViewed"].ToString();
    }
    protected void createSession()
    {
        Session["PagesViewed"] = 0;
    }
Run Code Online (Sandbox Code Playgroud)

这段代码编译并测试出来,我设置了一个标签作为计数器,所以我可以看到它正常工作.问题是,每次都是0.它不会增加.我不确定我的错误在哪里.

Dar*_*Jam 5

每次页面首次加载时,您的函数CreateSession都会将值重置为0.

这可能应该在你的会话开始.

或者在设置之前检查它是否存在:

protected void createSession()
{
    if(Session["PagesViewed"] == null)
    {
        Session["PagesViewed"] = 0;
    }
}
Run Code Online (Sandbox Code Playgroud)