无法在单击按钮时 Asp.net 递增 Page 变量的值

本文关键字:Page 递增 变量 net Asp 单击 按钮 | 更新日期: 2023-09-27 18:32:43

>每当我反复单击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();
}
}

无法在单击按钮时 Asp.net 递增 Page 变量的值

原因是

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

有关这方面的更多信息,您需要阅读 ASP.NET 页面生命周期。

从本质上讲,"全局"并不能非常准确地描述c变量。 它的作用域非常局限于该类,更具体地说,仅限于该类的任何一个实例。