变量状态
本文关键字:状态 变量 | 更新日期: 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是无状态的,像index
或text
这样的每个对象(甚至所有控件)都会在页面生命周期结束时被销毁。因此,它们总是使用默认值进行初始化。
int index = 10;
string text = "start";
您可以使用控件(例如TextBox
或HiddenField
)在回发过程中保持它们的值。
但还有其他选择:
在ASP.NET应用程序中管理持久用户状态的九个选项
您没有在post-back之间保持index
和text
变量的更新状态。因此,由于每个请求都会创建一个新的CountriesTowns
实例,因此这些值会被重新初始化为其默认值。
每次单击按钮,都会导致Postback。Postback不仅仅运行您的点击代码。。。它还会重建整个页面。要做到这一点,它会创建一个全新的Page类实例,然后在新页面的html完成后立即销毁。它必须这样做,因为一旦呈现html,Page类的原始实例也会被销毁。