请问Asp.net 如何持久化后台变量
比如说WebForm1 .aspx.cs后台界面中定义一个string 变量test,我只希望它在页面第一次加载的时候初始化,其它时候PostBack都不初始化。而WebForm1.aspx中放一个DropDownList控件,当该控件选中项发生变化时触发事件来测试test的值,结果是test为空值。
public partial class WebForm1 : System.Web.UI.Page { string test; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { DropDownList.Items.Add("test1"); DropDownList.Items.Add("test2"); test = "hello"; } } protected void DropDownList_SelectedIndexChanged(object sender, EventArgs e) { Response.Write(test);//此时test为空值。。请问如何才能使得只初始化一次,而且又能让test持久化保存,如果我所需要持久化的变量不仅仅只是一个字符串变量,也可能是一个List<string>或者Dictionary类型,那么有哪些方法可以在服务器端只初始化一次,然后能够持久化保存呢? } } protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { DropDownList1.Items.Add("test1"); DropDownList1.Items.Add("test2"); test = "hello"; ViewState["value"] = test; } } protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) { if (ViewState["value"] != null) { Response.Write(ViewState["value"].ToString()); } else { Response.Write("null"); } }