asp.net 页面static变量问题
2011-08-23 23:16
274 查看
下面引用 http://www.cnblogs.com/meyer/archive/2004/04/27/7846.html
在C#中,static变量表示该变量属于类,而不是类的实例。可以说是该类的所有实例共享一个static变量。asp.net的页面就是一个类,我们访问一个页面。就会在服务器上实例化一个该类的实例,来响应我们的请求。“所有实例共享一个static变量” 这就意味着,所有的客户端访问到的asp.net页面中static变量都是同一个变量。
由于我们每次访问asp.net页面都是一个全新的对象,而不是我们上一次访问的对象。所以上次页面访问时我们对页面中变量的改动都没有保留。遇到这个问题的时候,很多初学者的直觉就是将这个变量申明为static,自己在测试的时候发现还真的保留住了页面的状态。
测试代码如下:
View Code
改为ViewState正常
在C#中,static变量表示该变量属于类,而不是类的实例。可以说是该类的所有实例共享一个static变量。asp.net的页面就是一个类,我们访问一个页面。就会在服务器上实例化一个该类的实例,来响应我们的请求。“所有实例共享一个static变量” 这就意味着,所有的客户端访问到的asp.net页面中static变量都是同一个变量。
由于我们每次访问asp.net页面都是一个全新的对象,而不是我们上一次访问的对象。所以上次页面访问时我们对页面中变量的改动都没有保留。遇到这个问题的时候,很多初学者的直觉就是将这个变量申明为static,自己在测试的时候发现还真的保留住了页面的状态。
测试代码如下:
View Code
public partial class _Default : System.Web.UI.Page { //private static string str; protected void Page_Load(object sender, EventArgs e) { if(!IsPostBack) { //str = "这是个static变量赋值"+DateTime.Now; ViewState["Key"] = "这是个static变量赋值" + DateTime.Now; } } protected void Button1_Click(object sender, EventArgs e) { this.TextBox1.Text = ViewState["Key"].ToString(); } }
改为ViewState正常
相关文章推荐
- 【问题】Asp.net MVC 的cshtml页面中调用JS方法传递字符串变量参数
- [小经验]ASP.NET页面的编码问题
- asp.net中页面之间传值问题
- asp.net页面编码问题
- Asp.net中的页面乱码的问题
- 关于asp.net页面通过url传值,中文出现乱码的一些有趣的问题~~~
- 真正解决ASP.NET每一个页面首次访问超级慢的问题
- 【原】Asp.net生成Excel文件并下载(更新:解决使用迅雷下载页面而不是文件的问题)
- ASP.NET页面执行顺序(第二个LoadViewState事件可以解释我新浪博客中的“HiddenField隐藏域的值改变时onvaluechanged的事件触发问题”一文的问题)
- ASP.NET Post页面及验证视图状态MAC失败问题的正确解决办法
- 【转】static变量的使用与asp.net
- Asp.net生成Excel文件并下载(更新:解决使用迅雷下载页面而不是文件的问题)
- 安装完vs.2005之后,重新安装iis后无法使用http方式访问asp.net工程的页面的问题的解决方法
- ASP.NET中让页面对话框问题的代码
- ASP.NET Post页面及验证视图状态MAC失败问题的正确解决办法
- 关于Asp.net页面Page_Load被执行两次的问题
- static变量与asp.net
- asp页面在VS.NET中无法打开的问题解决
- asp.net(c#)页面加载时添加控件的属性和回车问题
- ASP.NET自定义控件的BUG在ASPX页面中注册控件后不能打出标签的问题(本人已解决)