如我有页面
A.aspx
B.aspxB.aspx是一个登录页面,生成一些Session
然后现在要求是在A.aspx调用B.aspx并能读取到他生成的Session
我开始用    //A.aspx.cs
    protected void Button1_Click(object sender, EventArgs e)
    {
        Session.Clear();
        Server.Execute("B.aspx");
        if (Session["Test"] != null)
        {
            Response.Write(Session["Test"].ToString());
        }
    }
    //B.aspx.cs
    protected void Page_Load(object sender, EventArgs e)
    {
        Session["Test"] = "OK";
    }但是后来用了AJAX后就不行了 报错说网页有Respone.write()
A.aspx<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>无标题页</title>
</head>
<body>
    <form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    <asp:UpdatePanel ID="UpdateUser" runat="server">
        <ContentTemplate>
            <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
        </ContentTemplate>
    </asp:UpdatePanel>
    </form>
</body>
</html>那要怎么办 我才能在AJAX中实现这个功能呢 谢谢

解决方案 »

  1.   

    Ajax不能用Response.Write方法。
    你可以设置一个label,让这个label显示你的Session值。
      

  2.   


            protected void Button1_Click(object sender, EventArgs e)
            {
                Session.Clear();
                Server.Execute("B.aspx", new System.IO.StringWriter(), false);//这样调用Server.Execute就不会出错了
                ScriptManager.RegisterStartupScript(this, this.GetType(), "js", "alert('" + Session["Test"] + "')", true);//在UpdatePanel中是无法使用Response.Write输出流的了,用别的办法显示这个Session的值吧
            }
      

  3.   

    Server.Execute("B.aspx", new System.IO.StringWriter(), false);
    还是错,不过是另一个错误