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

webusercontrol可以正常工作,除了asyncfileupload完全不需要上传。我可以确保代码没有错误,因为我曾经使webusercontrol作为* .aspx站点运行。

我想问题是这样的事实,即每个asyncpostback控件都必须清除并重新加载?

最佳答案

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

我设法get around this issue after reading this link

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

例如。 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'

关于c# - Asyncfileupload在webusercontrol中不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3582111/

10-11 15:42