读书人

为啥第一次取的Session值是空的呢

发布时间: 2012-08-10 12:19:33 作者: rapoo

为什么第一次取的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"]%> 的解析前面运行

读书人网 >asp.net

热点推荐