あなたが経験している問題は、プロセスの途中で物事を変更することにかかっています...
.aspxASP.NET からページを要求すると、およびファイルのマークアップが使用され.ascxます。これから (コード ビハインドで作成する動的コントロールを含む他の多くのものと一緒に)、ViewState を作成します。これは、ページの と呼ばれる隠しフィールドに格納されます__VIEWSTATE。
その後、(リンクやボタンのクリックなどによって) ページをサーバーにポストバックすると、サーバーはその ViewState 情報を読み込み.aspx、および.ascxファイル内のすべてのコントロールがまったく同じ状態であると想定します。
あなたのコメントから私が言えることは、あなたがしていることはこれです...
- サーバーからのページのリクエスト (を含む HTML をロードしている
__VIEWSTATE)
.aspxサーバー上のページを変更する(この場合は、新しい を追加します<asp:Panel>)
- ページをサーバーに戻してエラーを取得します。
この第 3 段階では、サーバーは 内のコントロールと 内.aspxの情報を調べています ... コントロールが一致しない__VIEWSTATEため、エラーが発生します。はそれについて何も言及していないため、サーバーはページに が表示されることを期待していません。<asp:Panel>__VIEWSTATE
したがって、問題の解決策は簡単です-ページをブラウザにロードする.aspx 前にコントロールを追加するだけです