单击c#asp.net按钮上的增量int

单击c#asp.net按钮上的增量int,c#,asp.net,C#,Asp.net,我试图在每次单击按钮时递增整数,我使用viewstate为我的int赋值,但它不起作用。这是我的代码示例 public int par { get { if (ViewState["par"] == null) { ViewState["par"] = 2; } return (int)ViewState["par"]; } set { ViewSt

我试图在每次单击按钮时递增整数,我使用viewstate为我的int赋值,但它不起作用。这是我的代码示例

 public int par
{
    get
    {
        if (ViewState["par"] == null)
        {
            ViewState["par"] = 2;
        }
        return (int)ViewState["par"];
    }

    set
    {
        ViewState["par"] = value;
    }
}
和按钮单击事件:

 protected void LoadMore_Click(object sender, EventArgs e)
{
    try
    {
        this.par = this.par + 1;
        loadNews(Convert.ToInt32(this.par));

    }

    catch (Exception ex)
    {

        Response.Write(ex);
    }
}
问题是,第一次单击时,数字会增加1,但在下一次单击时,什么也不会发生

int number= 0;
protected void btnIncrement_Click(object sender, EventArgs e)
{
    number++;
    ViewState["number"] = Convert.ToInt32(ViewState["number"]) + number;
    lblShow.Text = ViewState["number"].ToString();
}

我想这是可行的。

“不可行”是不够的信息。很好,问题是什么?您的应用程序是否启用了viewstate?在按钮中执行其他不依赖于视图状态的操作,例如只在响应中写入一些文字。我的猜测是,您没有正确创建按钮或添加事件处理程序,因此整个单击处理程序没有运行。这意味着,如果您处于用户控件中,则在页面级别或用户控件级别未启用视图状态,或者将页面加载的值设置为null或2。这与OPs代码有何区别,除此之外,他的代码将视图状态访问权包装在属性中(这比我认为的要好)?就这点而言,类级字段是编写
+1的奇怪方式
。这总是返回1而不是增量。我认为唯一应该增量的是
单击
事件?@JPHellemons这个问题是在Asp.Net的上下文中提出的。本地类字段不会在单击事件中保持不变。
private int number = 0;
public int par
{
    get
    {
        return number;
    }
    set
    {
        number = value;
    }
}

protected void LoadMore_Click(object sender, EventArgs e)
{
    number++;
    lblShow.Text = par.ToString();

    try
    {
        loadNews(par);
    }
    catch(Exception ex)
    { 
        lblShow.Text += ex.Message; 
    }
}