Я работаю над пользовательским элементом управления ASP.Net. В моем управлении у меня есть элемент управления FileUpload, внутри MultiView, внутри AJAX UpdatePanel.
Я добавил кнопку отправки в триггеры обратной отправки на панели обновлений. (Это стандартное исправление для работы FileUpload в UpdatePanel).
При первой отправке FileUpload ничего не загружает (т. е. свойство FileBytes элемента управления имеет нулевую длину). Все остальное в форме отправляется правильно.
При второй и последующих отправках загрузка работает корректно.
Что может быть причиной этого и как это исправить?
Например:
<asp:UpdatePanel runat="server" ID="update_panel" UpdateMode="Conditional">
<ContentTemplate>
<asp:MultiView runat="server" ID="mvMultiView" ActiveViewIndex="0">
<asp:View runat="server" ID="viewOne">
<!-- content -->
</asp:View>
<asp:View runat="server" ID="viewTwo">
<!-- some other form elements -->
<asp:FileUpload ID="file_upload" runat="server" />
<asp:Button ID="save_button" runat="server" Text="Save" OnClick="save_Click" ValidationGroup="group" />
</asp:View>
</asp:MultiView>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="save_button" />
</Triggers>
</ajax:UpdatePanel>