asp.net web应用程序 全局变量
首先承认自己很弱,正在学习asp.net。现在要用asp.net作一个计算器的web应用程序。遇到一个很棘手的问题。每次触发事件之后,web页面就会被刷新,代码中的变量就会变成原来的初值。有什么办法可以解决吗?
现在唯一尝试的是把变量的值赋给ViewState,然后再在page_load事件中把ViewState的值赋给变量。可是感觉这样很麻烦,而且对于arraylist这样的类型就似乎没办法了。
高手指教。跪谢。
asp.net web程序是无状态的, 服务器端把数据发送到客户端后便Dispose了, 页面刷新是 客户端重新请求服务器,但是服余亏裂务器并不知道客户端页面上一次的状空物态, 只能通过 客户端 提交的 数据才知道,而ViewState就是专门设计用来从客户端提交数据到服务器端的。 ViewState可以保存任何可序列化的对象。
另外你可以 使用Session变量,用法竖闭和ViewState差不多,不过Session是保存在服务器端的,会占用服务器资源
ViewState可以保存任意类型的变嫌尺量,ViewState本身返回的是object,如果你存进去的是ArrayList,取的时候将object类型的ViewStae强制转姿者毁换为迹备ArrayList类型就可以了
viewstate放入可序列化的东西,还有可以尝试ajax 用服务端处理
学习asp.net不要燃扮局限于服务器控件的使用,web体现最终都是html的体现,可以尝试使用历尘javascript脚本来完成,如果非要使用控件,则可以尝试Ajax技术来实肢段禅现。
使用Session变量
有点小区别的
应用程序每一个页面的类都可以实扰侍例化,而网站的不可以
default.aspx.designer.cs
是设计器,就是你拉控件轮李铅过腊好去自动生成的代码