测试代码如下:        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["test"] == null)
            {
                Session["test"] = "Session 值";
            }
            else                this.TextBox1.Text = Session["test"].ToString();
        }我已将IE Cookie禁用.
页面中有一服务端按钮用于提交页面.首次访问时 Session["test"] 为空,我为其设置一个值:"Session 值",当点击按钮时发生提交,跟踪后台代码,发现Session["test"]可以取到值,这是为什么.ASPNET是通过什么来取得页面二次提交时的Session对象的?请教,不胜感激.

解决方案 »

  1.   

    第二次就获取不到吧
    确认有没有禁掉,看下SessionID是多少
      

  2.   

    Session有两种方式传值, 一种是cookie, 一种是隐式url 
    ASP.NET会不会智能选择一种可用的, 我就不清楚了~ 
      

  3.   

    但我测试看到IE URL中没有SESSIONID号啊,是不是内部传入,而用户IE中是看不到的?
      

  4.   

    你再新开一个aspx,看看能不能取到Session["test"].ToString(); 
    在本页是有效的,跨页就无效了