0

ビューステートの読み込みに失敗しました。ビューステートが読み込まれるコントロール ツリーは、前の要求でビューステートを保存するために使用されたコントロール ツリーと一致する必要があります。

ページにaspパネルを含めるまで、ページは正常に読み込まれます。次に、上記のエラーが表示されます。

誰でもこれの考えられる原因を考えることができますか? asp パネルは空です。文字通りテストを作成しました。

<asp:Panel runat="server" ID="pnlTest"></asp:Panel>

そして、それは壊れます。

4

3 に答える 3

2

でパネルを閉じる必要があります</asp:Panel>

<asp:Panel runat="server" ID="pnlTest">
</asp:Panel>

ページの初期化時に動的コントロールを作成する

詳細については http://geekswithblogs.net/FrostRed/archive/2007/02/17/106547.aspx

そしてここにいくつかの詳細情報 http://blog.typps.com/2008/01/failed-to-load-viewstate-typ.html

于 2012-08-10T12:44:45.657 に答える
1

あなたが経験している問題は、プロセスの途中で物事を変更することにかかっています...

.aspxASP.NET からページを要求すると、およびファイルのマークアップが使用され.ascxます。これから (コード ビハインドで作成する動的コントロールを含む他の多くのものと一緒に)、ViewState を作成します。これは、ページの と呼ばれる隠しフィールドに格納されます__VIEWSTATE

その後、(リンクやボタンのクリックなどによって) ページをサーバーにポストバックすると、サーバーはその ViewState 情報を読み込み.aspx、および.ascxファイル内のすべてのコントロールがまったく同じ状態であると想定します。

あなたのコメントから私が言えることは、あなたがしていることはこれです...

  • サーバーからのページのリクエスト (を含む HTML をロードしている__VIEWSTATE)
  • .aspxサーバー上のページを変更する(この場合は、新しい を追加します<asp:Panel>)
  • ページをサーバーに戻してエラーを取得します。

この第 3 段階では、サーバーは 内のコントロールと 内.aspxの情報を調べています ... コントロールが一致しない__VIEWSTATEため、エラーが発生します。はそれについて何も言及していないため、サーバーはページに が表示されることを期待していません。<asp:Panel>__VIEWSTATE


したがって、問題の解決策は簡単です-ページをブラウザにロードする.aspx 前にコントロールを追加するだけです

于 2012-08-10T13:11:40.853 に答える