c# - 为什么我的计数器不增加?

标签 c# asp.net session-state

我已经完成了一些 C++ 编程,但我是 c# 的新手。

我编写了一个简单的应用程序来计算用户点击按钮的次数,然后在按钮上显示该计数。

在第一次点击时有效,但之后它保持在 1。有什么建议吗?提前致谢

public partial class Default : System.Web.UI.Page
{
    private int clickcount = 0;
    public virtual void button1Clicked (object sender, EventArgs args)
    {
        clickcount++;
        button1.Text = "You clicked me "+clickcount.ToString()+" time";
    }
    public virtual void GreetButtonClicked (object sender, EventArgs args)
    {
        GreetButton.Text = "Hello "+TextInput.Text;
    }
     }      

最佳答案

每次创建页面时,您都将计数设置为零。这:

private int clickcount = 0;

几乎和这个一样:

private int clickcount;

public Default()
{
    clickcount = 0;
}

由于每次请求页面时都会调用构造函数,因此您总是会将值重置为零。

如何解决这个问题取决于您要计算的内容。例如,如果您想计算当前 session 中的点击次数,那么您应该使用 session 变量来存储计数。

我建议您阅读以下网页,以全面了解可以存储状态的位置以及最适合不同用途的存储类型:

关于c# - 为什么我的计数器不增加?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10971421/

相关文章:

asp.net - session 在一个站点上有效,但在同一台计算机上的另一个站点上无效

header 重定向后 PHP session 索引未定义?

c# - log4net 日志记录不创建日志文件

c# - 如何以编程方式或定期清除 Operational PrintService 事件日志?

C# 选择具有特定 CssClass 的所有文本框

c# - Visual Studio 2013 中的 Silverlight

asp.net - 在 ASP.NET 中使用 session

c# - 我应该创建一个新数组还是使用 array.clear?

c# - 如何在 C# 中为已在 WPF 中的 XAML 中声明的矩形着色?

c# - 将一种语言的语音转换为另一种语言