Я думаю, что проблемы возникают, когда вы помещаете свой элемент управления 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'