動的に読み込まれるカスタム ユーザー コントロール内に AsyncFileUpload コントロールを配置すると、問題が発生すると思います。
このリンクを読んだ後、この問題を回避することができました
基本的に、ダミーの AsyncFileUpload コントロールを親 .aspx ページに配置しました。
例えばDefault.aspx
<span style="display:none">
<asp:AsyncFileUpload ID="DummyAsyncFileUpload" runat="server" />
</span>
AsyncFileUpload コントロールはユーザーには表示されませんが、ASP.NET には引き続き表示されることに注意してください。
私の理論はこれです:
ファイルをアップロードするには、別のエンコード タイプ ( multipart/form-data
) を使用してフォームのコンテンツを投稿する必要があります。
AsyncFileUpload を UpdatePanel 内に配置すると、ASP.NET は何らかの理由でエンコーディング タイプをまったく設定せず、空のままにします。
例えばdocument.forms[0].enctype = ''
したがって、フォームを投稿すると、ファイルのアップロードで何をすべきかわかりません。
ダミーの AsyncFileUpload を Default.aspx ページに配置することにより、ASP.NET は FileUpload コントロールの存在を検出し、それに応じてエンコード タイプを設定します。
例えばdocument.forms[0].enctype = 'multipart/form-data'