变量状态

本文关键字:状态 变量 | 更新日期: 2023-09-27 17:57:40

在"edmx"页面中,我使用事件"NextButton_Click"进行按钮控制。当我点击此按钮时,变量"index"不想更改为"40"answers"text"变量不希望更改为"活动"。这些变量总是处于相同的状态,"text"总是等于"start","index"始终等于"10"。为什么他们不想改变(指数=40;text="活动";)正如我在点击按钮事件方法中所写的那样?

public partial class CountriesTowns : System.Web.UI.Page
{
    int index = 10;
    string text = "start";
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            index = 20;
            text = "stop";
        }
    }
    //click next button
    protected void NextButton_Click(object sender, EventArgs e)
    {   
        Response.Write(index);
        Response.Write(text);
        index = 40;
        text = "active";
    }

变量状态

HTTP是无状态的,像indextext这样的每个对象(甚至所有控件)都会在页面生命周期结束时被销毁。因此,它们总是使用默认值进行初始化。

int index = 10;
string text = "start";

您可以使用控件(例如TextBoxHiddenField)在回发过程中保持它们的值。

但还有其他选择:

在ASP.NET应用程序中管理持久用户状态的九个选项

您没有在post-back之间保持indextext变量的更新状态。因此,由于每个请求都会创建一个新的CountriesTowns实例,因此这些值会被重新初始化为其默认值。

每次单击按钮,都会导致Postback。Postback不仅仅运行您的点击代码。。。它还会重建整个页面。要做到这一点,它会创建一个全新的Page类实例,然后在新页面的html完成后立即销毁。它必须这样做,因为一旦呈现html,Page类的原始实例也会被销毁。