读书人

请教Asp.net 怎么持久化后台变量

发布时间: 2012-03-25 20:55:17 作者: rapoo

请问Asp.net 如何持久化后台变量
比如说WebForm1 .aspx.cs后台界面中定义一个string 变量test,我只希望它在页面第一次加载的时候初始化,其它时候PostBack都不初始化。而WebForm1.aspx中放一个DropDownList控件,当该控件选中项发生变化时触发事件来测试test的值,结果是test为空值。

C# code
 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类型,那么有哪些方法可以在服务器端只初始化一次,然后能够持久化保存呢?        }    }



[解决办法]
在cs文件里面定义变量是不行的,当页面刷新后,这个变量的值就刷没了,除了session,cookie,viewstate的话,应该还能放到Cach里面,建议还是放到viewsdate里面吧。
[解决办法]
C# code
 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");        }    } 

读书人网 >asp.net

热点推荐