我有一个带有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/