按钮点击后,无法在Asp.net中增加Page变量的值

时间:2013-09-25 16:44:11

标签: c# asp.net

每当我反复点击Button1时,Literal1中的文本不会递增。你能告诉我原因吗?

预期:每次单击按钮后,文本字段中的值都会显示。

当前结果:值始终显示为1。

public partial class d1 : System.Web.UI.Page
{
int c;
protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        c = 1;
        Literal1.Text = c.ToString();
    }
}
protected void Button1_Click(object sender, EventArgs e)
{
    c=c+1;
    Literal1.Text = c.ToString();
}
}

1 个答案:

答案 0 :(得分:1)

原因是c是该类的实例变量。每次回发到服务器都会创建一个新的类实例。因此,c在每个帖子后面被初始化为0。如果您希望c在该类的单个实例之外保留,则需要将其存储在某个位置。会话,应用程序,数据库等(具体取决于在什么情况下c的值应该保持不变。我猜测这只是测试代码以了解功能,所以你可能会尝试以上所有内容,看看它们有何不同。)

对于 lot 有关此问题的更多信息,您需要阅读ASP.NET Page Life Cycle

基本上,"全球"没有将c非常准确地描述为变量。它的范围仅限于该类,更具体地说,仅限于该类的任何一个实例。