我在后面的代码中保存代表会话变量中URL的字符串,如下所示:
String mois = Request.QueryString["mois"].ToString();
String m = mois;
String moisnom = Request.QueryString["moisnom"].ToString();
String annee = Request.QueryString["annee"].ToString();
String dt = Request.QueryString["date"].ToString();
String user = Request.QueryString["user"].ToString();
String where = "jour.aspx?mois=" + mois + "&moisnom=" + moisnom + "&annee=" + annee + "&date=" + dt + "&user=" + user + "&cp=all" + "&usl=" + Request.QueryString["usl"].ToString();
Session["togo"] = where;
然后我尝试在JavaScript中像这样得到它:
var togo = '<%=Session["togo"]%>';
// i also tried this var togo ='@Session["togo"]';
var newPage = togo; // this should contain a string with the url to go to
但是当我使用它时,它将它用作字符串,这就是我的URL的样子:
http://localhost:50311/<%=Session["togo"]%>
or
http://localhost:50311/@Session["togo"]
我怎样才能访问会话变量或者我做错了什么?
EDIT:
like you suggested i already tried using the hidden field like this
yes i tried that but then i had this problem here is the definition of the hidden field
<input type="hidden" value="aa" id="myHiddenVar" runat="server"/>
然后我试着给它点击我需要的价值
String where = "jour.aspx?mois=" + mois + "&moisnom=" + moisnom + "&annee=" + annee + "&date=" + dt + "&user=" + user + "&cp=all" + "&usl=" + Request.QueryString["usl"].ToString();
myHiddenVar.Value= where;
这就是我尝试从js文件中获取它的方式
var togo = $('#myHiddenVar').val();
var newPage = togo;
但它取默认值意味着&#34; aa&#34;如在值=&#34; aa&#34;我猜是因为脚本是在变量赋值之前执行的,如何反转那个顺序?
答案 0 :(得分:1)
会后[&#34; togo&#34;] =其中; 在隐藏变量
中保存此会话[&#34; togo&#34;]hiddenVariable =会话[&#34; togo&#34;];
现在在JS访问中隐藏变量: 假设hiddenvariable的ID是&#34; hdnxyz&#34;
var togo = $(&#39; #hdnxyz&#39;)。val();
var newPage = togo;
答案 1 :(得分:1)
首先,会话驻留在服务器上!!!!!!
如果它位于不同的js文件中,则无法访问它&lt;%xyz%&gt;即scriplet标签仅适用于aspx页面...
所以无法在客户端访问会话变量..
而是将sessio9n值分配给隐藏变量,然后使用javascript
访问它答案 2 :(得分:0)
在asp:HiddenField
中编写会话元素,然后使用您的js代码从中读取。