将会话变量传递给另一个页面Javascript

时间:2013-05-01 09:36:09

标签: javascript asp.net vb.net session-variables

我们,我正在创建一个VB.NET应用程序,这是我第一次使用Session Variables。

我想要做的是通过网址将会话变量从页面( 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 [for使用window.open()]的示例,以便url不包含变量的值,但名称为:

url/second.aspx?value=example AND NOT url/second.aspx?value=example456

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

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

有可能吗?

如果没有,还有其他方法可以做到这一点

感谢您的帮助:)

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分: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
    
  5. 因此,在第二页中,您可以访问Session(“example”)值,它将在第一页中由客户端脚本设置一个新值。