欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

此页的状态信息无效,可能已损坏 的处理办法及原因分析

程序员文章站 2024-03-02 12:31:22
当时的情况是这样的: a.aspx页面 执行一个url字符串访问b.aspx 然后 b页面返回一个值给a a.aspx.cs的一段代码复制代码 代码如下: &...

当时的情况是这样的:

a.aspx页面 执行一个url字符串访问b.aspx 然后 b页面返回一个值给a

a.aspx.cs的一段代码

复制代码 代码如下:

                            string result = "";
                            string url = "http://localhost:1759/textweb/b.aspx";
                            result =exec_url(url);
                            label1.text = result;

    public string exec_url(string url)
    {

        string result = "1";
        webrequest request = webrequest.create(url);
        try
        {
            request.timeout = 20000;//20秒超时
            webresponse response = request.getresponse();

            stream resstream = response.getresponsestream();
            streamreader sr = new streamreader(resstream);
            result = sr.readtoend();
            sr.close();
            resstream.close();
        }
        catch
        {
            return "1";
        }
        return result;

    }


b.aspx页面代码:
复制代码 代码如下:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>无标题页</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>

   
    </div>
    </form>
</body>
</html>

b.aspx.cs代码如下:
复制代码 代码如下:

public partial class test : system.web.ui.page
{
    protected void page_load(object sender, eventargs e)
    {
        response.write("你好 哈哈!");
    }
}

运行时:第一次label内容显示正常 但当你不刷新页面再点击按钮时候就提示

system.web.httpexception: 此页的状态信息无效,可能已损坏

问题原因:

原来是这样的:第一次label加载内容时加载的内容为b.aspx

<form>

你好 哈哈!

</form>

再次点击时原理应该是这个样子的:

<form>

你好 哈哈!

<form>

你好 哈哈!

</form>

</form>

所以就出错了呀!

解决办法为:去掉b.aspx中的form标签