2012-03-29 29 views
0

私はこれがむしろ些細な質問であることは知っていますが、とにかくそれが解決可能かどうかを知りたいのです。AjaxToolkit AsyncFileUploadはViewStateModeを有効にする必要があります。

ネストされたマスターページを持つASP.NET Webフォームページがあり、JavaScriptにも含まれています。私はjQueryとAjaxの呼び出しを大量に使用しています。ページがロードされると、サーバーとのすべての通信はAjaxの呼び出しで行われるため、ViewStateを有効にする必要はなく、HTML出力コードが減少します。

ここで、ユーザーがファイルをアップロードできるページを実装する必要があります。だから、私はAjaxToolkitFileUploadのAsyncFileUploadコントロールを使用しました。ファイルがアップロードされると、サーバーにAjaxコールを行ってファイル名を要求します。

すべて正常に動作しますが、FireCloudがOnClientUploadStartedイベントとOnClientUploadCompleteイベントの間でファイルアップロードごとに10個のエラーを検出したことに気付きました。ファイルが正しくアップロードされ、クライアント側のイベントも機能しています。しかし、私はエラーが投げられているという事実を無視できないので、私は問題を探しに行った。

私はページ単位で再構築し、このコントロールではViewstateを有効にする必要があることがわかりました。 ページビューでviewstate = disabledを指定すると、ファイルサイズは76.6kb、viewstate = enabledのサイズは99.2kbです。

また、私はそれが自明であり、サイトのパフォーマンスに影響しないことを知っていますが、それは知っていいです。
- なぜこのコントロールはviewstateを必要としますか? (私はそれが実際にファイルをiFrameなどに投稿するからだと思います)
- どのようにしてビューステートを縮小し、このコントロールを適切に動作させることができますか?

答えて

0

ビューステートを縮小し、この1つのコントロールを正常に動作させるには、ページでleaveビューステートを有効にして、ページのViewStateModeを無効に設定し、ビューステートが必要なコントロールのViewStateModeをEnabledに設定します。他のすべてのコントロールでは、デフォルトで親の設定を継承する必要があります。

関連する問題