为什么在第一次点击default.aspx页面上的temp和temp2链接时,Session都能够赋值,第二次点击temp或temp2后就不赋值了,一直保持在第2次点击其个链接时的状态。
default.aspx

<html>
<head>
<script type="text/javascript">
        function sessionpage(index) {
            var urltxt = "session.aspx?num=" + index; 
            objHTTP = new ActiveXObject("Microsoft.XMLHTTP");
            objHTTP.open("get", urltxt, true);
            objHTTP.send();        }
        function position(i) {
            var id = i.toString();
            var target = document.getElementById("position");
            var str = '&nbsp;&nbsp;您当前所在的位置:首页->';
            switch (id) {
               case "23":
                    sessionpage('temp.aspx');
                    break;
               case "24":
                    sessionpage('temp2.aspx');
                    break;
                      }
               }
</script>
</head>
<body>
<a href="temp.aspx" onclick="position(23);" target="iframe2">temp</a>
<a href="temp2.aspx" onclick="position(24);" target="iframe2">temp2</a> </body></html>session.aspx.cs: 
protected void Page_Load(object sender, EventArgs e)
        {
            Session["page"] = Request.QueryString["num"].Trim();
        }

解决方案 »

  1.   

    你怎么知道没有赋值?你的赋值没有变化啊。
    你可以禁止缓存
    var urltxt = "session.aspx?t="+Date.parse(new Date())+"&num=" + index;  
      

  2.   

    清楚缓存下就可以了 在Url后面加个Math.Random()
      

  3.   

    浏览器缓存问题,对于相同url,在缓存里有,就不会再次发送请求
    var urltxt = "session.aspx?num=" + index+"&"Math.random()
    这样加个时间变量每次就会指向不同url