2014-08-28 65 views
0

我在Session的页面中存储了一个值(C#)。我在另一个页面中检索Session值并将其存储在ViewState中。之后,我清除了会话并使用页面中的ViewState执行了一些操作(按钮事件等)。从Session中存储ViewState的值

但是,将会话的值存储到ViewState后,如果刷新浏览器,则ViewState值不可用。因为它尝试从Session中获取值,但它已被清除(第一次)。

我需要一些指导/建议,以适当的方式做到这一点。

+0

究竟是什么问题? ViewState不可用吗?你是否要求其他地方存储价值? – 2014-08-28 06:37:31

+1

为什么你想要从会话中删除一些值?如果你在Session对象中放置了一些东西,如果没有的话,不要放在那里。 – Mithrandir 2014-08-28 06:37:51

+0

在页面加载中,我将会话值存储到查看状态并清除会话。因为我不想保留这个会话。但是,如果我刷新浏览器,viewstate值不存在。任何其他方式来保持价值...? – Jesuraja 2014-08-28 06:43:10

回答

1

刷新浏览器时,先前的请求将再次执行。 在这个时候,会话变量被清除(因为您在保存视图状态后执行此操作)。 其他的方法是在页面之间使用查询字符串传递数据,如果你希望它持久(没有会话)。我认为饼干也可能在这里工作。

通常情况下,会话将更安全和持久。

+0

我无法使用查询字符串和cookie。实际上我在会话中存储了'列表'。如果没有其他办法做到这一点,我会保持会议。但我需要清除该页面中的会话。这是我的问题。感谢您的建议... :) – Jesuraja 2014-08-28 06:57:33

+0

然后您可以尝试将值保存在隐藏字段中。这将在请求对象内的新页面上可用。如果您“刷新”页面,它也将可用。但在页面发回后,这些值将消失。您可以在回发中使用视图状态。 为什么存储在会话中的任何具体原因不是一种选择? – Amol 2014-08-28 08:44:11