【发布时间】:2013-07-01 20:55:03
【问题描述】:
我有一个会话变量,用于存储数据表(根据用户希望添加/删除项目(数据表中的数据项)的方式而变化。
在整个 web 应用程序的最后一页,我有一个提交页面,允许用户提交数据表中选择的项目。
因为我认为如果页面打开时间过长会话变量可能会过期,并且为了防止过期变量引起错误,在 page_load 函数的 !IsPostBack 我将会话变量分配给 viewstate 变量(因此数据将被存储处于页面的视图状态并且不会过期)。
if(!IsPostBack){ ViewState["myDataTable"] = Session["myDataTable"]}
1) 这是标准做法吗?在将会话变量分配给视图状态时是否有任何影响/错误?
2) 拨打ViewState["myDataTable"] = Session["myDataTable"] 后,可以拨打Session["myDataTable"] = null 吗?
【问题讨论】:
-
使用
Profile而不是Session。 -
在回发时检查会话变量是否不为空,以防止过期会话出现任何错误,怎么样?
-
@Jonny 我也是这么想的。但是如果我们希望它对用户更加友好,并且不希望用户再次输入数据,你有什么建议呢?