【发布时间】:2015-12-06 08:36:25
【问题描述】:
我可以使用以下方式将会话变量存储在 aspx 页面中:
$(document).ready(function () {
var userName = "webruster";
'<%Session["UserName"] = "' + userName + '"; %>';
alert('<%=Session["UserName"]%>');
});
现在,当我尝试检索 Session["UserName"] 时,我无法在 cs 中获得该值。为此,我有一个解决方法,但想知道它失败的原因?
替代方式:
声明隐藏变量和链接按钮
$(document).ready(function () {
var userName = "webruster";
'<%Session["UserName"] = "' + userName + '"; %>';
var x = document.getElementById("<%=hdnsessionvalue.ClientID %>");
x.value = '<%=Session["UserName"] %>';
document.getElementById('<%= lnkButton1.ClientID %>').click();
});
所以我能够在服务器端检索onclick 事件中的值。
我的问题: 那么为什么我无法使用第一种方法检索 cs 中的会话值(即没有分配给隐藏变量)
【问题讨论】:
-
@Sac 你的意思是过去的备份,它清除了分配的会话值?
-
您不能在客户端设置会话。它是服务器端状态管理技术..您可以设置 HiddenField 值并可以在服务器端..codeproject.com/Questions/341573
-
@Sac 但在使用
alert('<%=Session["UserName"]%>')发出警报时我能够看到会话值。为什么我能够在客户端看到它? -
@sac 否,我无法在所有浏览器中获取值
标签: javascript c# asp.net session asplinkbutton