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