Asyncfileupload在webusercontrol中不起作用

时间:2010-08-27 07:19:09

标签: c# asp.net asyncfileupload

我遇到了一个带有asyncfileupload控件的Webusercontrol的问题。 我的websusercontrol正在一个由updatepanel包装的占位符控件中加载。由于asyncpostback,我必须加载并清除占位符的控件。

webusercontrol完美无缺,除了asyncfileupload,它根本不想上传。我可以保证代码没有错误,因为我曾经将webusercontrol作为* .aspx站点运行。

我猜问题是必须清除控件并重新加载每个asyncpostback?

1 个答案:

答案 0 :(得分:2)

我认为一旦将AsyncFileUpload控件放在动态加载的自定义用户控件中,就会出现问题。

我设法get around this issue after reading this link

基本上,我在父.aspx页面上放置了一个虚拟的AsyncFileUpload控件

E.g。 Default.aspx

    <span style="display:none">
        <asp:AsyncFileUpload ID="DummyAsyncFileUpload" runat="server" />
    </span>

请注意,AsyncFileUpload控件对用户是隐藏的,但对ASP.NET仍然可见。

我的理论是:

要上传文件,您必须使用不同的编码类型(multipart/form-data)发布表单的内容。

当您将AsyncFileUpload放在UpdatePanel中时,无论出于何种原因,ASP.NET都不会设置编码类型,并将其留空。

e.g。 document.forms[0].enctype = ''

因此,当您发布表单时,它不知道如何处理文件上传。

通过在Default.aspx页面上放置虚拟AsyncFileUpload,ASP.NET会检测FileUpload控件是否存在,并相应地设置编码类型。

e.g。 document.forms[0].enctype = 'multipart/form-data'