会话变量未更新? ASP.NET

时间:2010-04-15 13:48:16

标签: asp.net session variables wizard

我有一个三步向导。在第一步,我使用转发器创建一系列按钮,个人可以从中选择。当用户选择其中一个按钮时,按钮的值被保存到会话状态。它们将进入下一步,并显示基于之前所选内容的类似按钮列表。因此,如果您选择“汉堡”,您可能会收到“洋葱”,“生菜”,“番茄”的选项,而如果您选择“热狗”,您可能会收到“酸菜”和“番茄酱”。 让我们说一个人选择汉堡包。这将保存到会话状态,如下所示:

    Public Sub Button_ItemCommand(ByVal Sender As Object, ByVal e As   RepeaterCommandEventArgs)
    ' ******** Lets pass on the results of our query in LinqDataSource1_Selecting.
    Session("food_select") = RTrim(e.CommandName)
    Wizard1.ActiveStepIndex = 1
End Sub

现在,这很好用,花花公子。但是,让我说我选择汉堡,然后意识到我真的渴望一个热狗。我回到第一个向导步骤并单击热狗按钮 - 但是当向导进入下一步时,我仍然可以看到汉堡包的选项!会话变量尚未更新。为什么? 谢谢!

2 个答案:

答案 0 :(得分:0)

会话变量可能已更新,但下一页仍然是上次访问时缓存

确保未缓存向导页面。

答案 1 :(得分:0)

问题在于过早检查会话变量。我需要稍后在页面加载过程中移动它们 - 例如prerender,然后更新会话变量。