我可以为每个范围内粘贴到此变量的变量赋值吗?

时间:2010-09-22 10:41:32

标签: c# asp.net

我可以为变量(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
}

3 个答案:

答案 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变量?