程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> ASP.NET基礎 >> 此頁的狀態信息無效,可能已損壞 的處理辦法及原因分析

此頁的狀態信息無效,可能已損壞 的處理辦法及原因分析

編輯:ASP.NET基礎

當時的情況是這樣的:

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標簽

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved