我可以为变量(int)赋值,并且永远不会在任何范围内丢失该值吗? 问题是我在某些范围内为该变量赋值,但该变量在其他范围内返回其默认值(零)。 示例:
protected void Button_AddNewCourse_Click(object sender, EventArgs e)
{
ID = 10;
}
因此,当我尝试在其他函数中使用ID
时,它会回落到零
protected void AnotherFunction(object sender, EventArgs e)
{
// Variable ID here is zero
}
答案 0 :(得分:4)
猜测一下,也许你是ASP.NET的新手,并且还没弄清楚为什么页面级变量不能在回发之间保持状态。尝试阅读Session州和Viewstate
或者总体概述:ASP.NET State Management Overview
e.g。根据您的代码示例,您可以使用Session条目来存储值:
protected void Button_AddNewCourse_Click(object sender, EventArgs e)
{
Session["ID"] = 10;
}
protected void AnotherFunction(object sender, EventArgs e)
{
int tempID = (int)Session["ID"];
}
您还可以执行许多其他操作 - 例如,使用Viewstate。
答案 1 :(得分:3)
更改看起来与此类似的行(可能在某处):
public int ID { get; set;}
类似
// keep the value of ID in this page only
public int ID { get { return (int)ViewState["ID"]; } set { ViewState["ID"] = value; } }
或
// keep the value of ID in every page
public int ID { get { return (int)Session["ID"]; } set { Session["ID"] = value; } }
答案 2 :(得分:0)
也许尝试使用readonly
变量?