我们,我正在创建一个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 中读取会话变量的值,然后执行各种操作。
有可能吗?
如果没有,还有其他方法可以做到这一点
感谢您的帮助:)
答案 0 :(得分:1)
会话变量以这种方式调用,因为它们在同一会话中自动从一个页面传递到另一个页面,因此您应该随时修改变量的值,然后再次访问它在第二页中找到值。你不需要明确地传递任何东西。
答案 1 :(得分:1)
从javascript设置会话变量可以完成如下:
在第一页上创建隐藏字段控件
<asp:HiddenField ID="HiddenField1" runat="server" />
设置隐藏字段值的客户端脚本
function setVal(value) {
// if using jQuery
$("#<%= HiddenField1.ClientID%>").val(value);
// if using javascript
var hf = document.getElementById("<%= HiddenField1.ClientID%>");
hf.value = value;
}
创建按钮或链接以导航至第二页
<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>
在第一页代码中,创建NavigateToSecondPage
子以处理按钮/链接的onclick事件
Protected Sub NavigateToSecondPage(sender As Object, e As EventArgs)
Session("example") = HiddenField1.Value
Response.Redirect("SecondPage.aspx")
End Sub
因此,在第二页中,您可以访问Session(“example”)值,它将在第一页中由客户端脚本设置一个新值。