Если FileUpload находится в UpdatePanel, он будет очищаться при каждой обратной передаче ajax.Вы можете использовать несколько UpdatePanels вокруг элемента управления FileUpload и сохранить FileUpload вне их.Также убедитесь, что кнопка, которая вызывает фактическую загрузку, выполняет реальную обратную передачу, а не асинхронную обратную передачу.Сделайте это, добавив кнопку в PostbackTrigger его UpdatePanel или вынув ее из UpdatePanel.
<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<ContentTemplate>
<asp:TextBox ID="TextBox2" runat="server" />
<asp:Button ID="Submit" runat="server" Text="Submit" />
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="Submit" />
</Triggers>
</asp:UpdatePanel>
Вы также можете использовать элемент управления AsyncFileUpload из набора инструментов Asp.net Ajax, он работает внутри UpdatePanel, но это немного сложнее, чтобы заставить это работать.