日期:2014-05-17  浏览次数:20446 次

为什么第一次取的Session值是空的呢?
有二个页面
每一个页面:Img.aspx
  专门用来输出验证码的,并且我将验证码的字符存入Session中,在前台调用,并进行判断
  string code = dp.recheckCode(); ---取随机码的方法

  this.Session["CheckCode"] = code; --将随机码赋给Session,以便在前台,进行判断

  dp.getJpg(code,this.Context); --输出验证图片

第二个页面:
  function aa()
  {
   
  var u = '<%=Session[ "CheckCode"]%> '; 
  alert(u);
   
  }
  第一次调用函数,取得值为null,第二次才会是正确的
  ???????

------解决方案--------------------
你的aa() 在哪里调用的? 如果一开始就执行 可能session就是null 因为脚本先执行 然后才会加载页面上剩下的东西 包括session和HTML代码
------解决方案--------------------
在application里先配置.Session["CheckCode"] =""再看看执行顺序
------解决方案--------------------
探讨
你的aa() 在哪里调用的? 如果一开始就执行 可能session就是null 因为脚本先执行 然后才会加载页面上剩下的东西 包括session和HTML代码

------解决方案--------------------
问题在于 function aa() 


var u = ' <%=Session[ "CheckCode"]%> '; 
alert(u); 


和img.aspx的执行顺序上吧
img.aspx被访问才能生成一个Session[ "CheckCode"],这个时候再取值alert(u)才是想要的。但页面解析时
img.aspx还没有被这次加载访问,所以<%=Session[ "CheckCode"]%>还是上一次的值,第一次的话那就是null了,用这个方法给js变量赋值我觉得是肯定不能成功的,除非能把img.aspx的加载确定一定以及肯定的放在<%=Session[ "CheckCode"]%> 的解析前面运行