當時的情況是這樣的:
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標簽