0

伙计们,我正在创建一个 VB.NET 应用程序,这是我第一次使用会话变量。

我想要做的是通过 url 将会话变量从一个页面(first.aspx)传递到另一个页面(second.aspx)。

这是我想做的一个例子:

first.aspx.vb页面中,我声明了一个会话变量并为其赋值

Session("example") = "example123"

然后我将此会话变量传递给first.aspx页面

Response.Write(Session("example"))

并通过 javascript 读取变量的值

<script type= text/javascript>
    var SessionVar = '<%=Session("example")%>)';
</script>

现在,我要做的是更改变量的值(例如将其设置为example456),然后将变量传递给second.aspx [例如与window.open()其名称:

url/second.aspx?value=example 并不是 url/second.aspx?value=example456

事实上,我不希望用户读取变量的值。

最后,我必须通过读取 second.aspx.vb 中会话变量的值并执行Request.QueryString("value")各种操作。

可能吗 ?

如果没有,还有另一种方法可以做到这一点

谢谢您的帮助 :)

4

2 回答 2

1

会话变量之所以这样调用,是因为它们在同一个会话中自动从一个页面传递到另一个页面,因此您应该随时修改变量的值,然后在第二页中再次访问它以找到该值。你不需要明确地传递任何东西。

于 2013-05-01T10:21:21.880 回答
1

要从 javascript 设置会话变量,可以如下完成:

  1. 在第一页创建隐藏字段控件

    <asp:HiddenField ID="HiddenField1" runat="server" />
    
  2. 设置隐藏字段值的客户端脚本

    function setVal(value) {
        // if using jQuery
        $("#<%= HiddenField1.ClientID%>").val(value);
    
        // if using javascript
        var hf = document.getElementById("<%= HiddenField1.ClientID%>");
        hf.value = value;
    }
    
  3. 创建一个按钮或链接以导航到第二页

    <asp:Button ID="Button1" runat="server" Text="Go to second page" OnClick="NavigateToSecondPage" /> 
          or 
    <asp:LinkButton ID="LinkButton1" runat="server" OnClick="NavigateToSecondPage">Go to second page</asp:LinkButton>
    
  4. 在后面的第一页代码中,创建NavigateToSecondPage子来处理按钮/链接的onclick事件

    Protected Sub NavigateToSecondPage(sender As Object, e As EventArgs)
        Session("example") = HiddenField1.Value
        Response.Redirect("SecondPage.aspx")
    End Sub
    

因此,在您的第二页中,您可以访问 Session("example") 值,它将具有由客户端脚本在第一页中设置的新值。

于 2013-05-01T19:47:36.570 回答