default2.aspx主題+動態控件創建+隱形UserControl =查看狀態錯誤?
<%@ Page Language="C#" AutoEventWireup="true" Theme="Blue" %>
<%@ Register TagPrefix="uc1" TagName="favicon" Src="~/FavIcon.ascx" %>
<!DOCTYPE html>
<script runat="server">
private void Page_PreRender(object sender, System.EventArgs e)
{
HtmlGenericControl scriptControl = new HtmlGenericControl("script");
Page.Header.Controls.AddAt(0, scriptControl);//If this line is commented out, no exception will occur.
}
private void Page_Init(object sender, System.EventArgs e)
{
ScriptManager oSM = new ScriptManager();
Page.Form.Controls.Add(oSM);//If this line is commented out, no exception will occur.
}
</script>
<html>
<head runat="server">
<title></title>
<uc1:favicon runat="server"></uc1:favicon>
</head>
<body>
<form id="form1" runat="server">
<asp:Button ID="Button1" runat="server" Text="Button" />
</form>
</body>
</html>
FavIcon.ascx
<%@ Control Language="C#" ClassName="FavIcon" AutoEventWireup="true" %>
<script runat="server">
void Page_Load(object sender, EventArgs e)
{
this.Visible = false;//If this line is commented out, no exception will occur.
}
</script>
同時添加樣式表藍的主題。
頁成功打開,但一旦我按一下按鈕,它會拋出異常
無法加載視圖狀態。視圖狀態爲 的控制樹必須與前一個請求期間用於保存視圖狀態的控制樹相匹配。例如,動態添加 控件時,在回發期間添加的控件必須匹配 在初始 請求期間添加的控件的類型和位置。
誰能解釋爲什麼這個錯誤發生?
這是將viewstate(默認啓用)與動態控件(controls.Addxxx)組合在一起時得到的經典錯誤:https://blogs.msdn.microsoft.com/asiatech/2011/10/25/why-我們得到異常失敗加載視圖狀態/(主題=藍色動態添加控件,Visible = true添加信息到視圖狀態等)。 –
@SimonMourier錯誤只發生在三個因素存在時。你能解釋爲什麼當我刪除三個因素中的任何一個時,錯誤不會發生? – Gqqnbig