C# FileUploader.Has文件在.net 4.0中始终返回false

C# FileUploader.Has文件在.net 4.0中始终返回false,c#,asp.net,file-upload,C#,Asp.net,File Upload,我一直在努力寻找答案,但我找不到任何有效的解决方案 MultipleFileUploader.ascx: <asp:ScriptManagerProxy ID="ScriptManagerProxy1" runat="server"> </asp:ScriptManagerProxy> <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <Conte

我一直在努力寻找答案,但我找不到任何有效的解决方案

MultipleFileUploader.ascx:
     <asp:ScriptManagerProxy ID="ScriptManagerProxy1" runat="server">
        </asp:ScriptManagerProxy>  
    <asp:UpdatePanel ID="UpdatePanel1"  runat="server">
        <ContentTemplate>
    <asp:FileUpload ID="FileUpload1" runat="server" 
                    multiple="multiple" onchange="__doPostBack('<%= UpdatePanel1.ClientID %>', ''); type="file" />
      </ContentTemplate>
    </asp:UpdatePanel>
当用户选择带有回发的文件时,它会上载该文件 这不应该是浏览器的问题,因为我在chrome firefox和IE上遇到了同样的问题。 在我们升级到.net 4.0之前,这些代码一直运行良好,出于某种原因,它FileUploader.HasFile总是返回false

我试过:

Page.Form.Attributes.Add("enctype", "multipart/form-data"); 
以及:

<Triggers> 
   <asp:PostBackTrigger ControlID="btnUploadFile" /> 
</Triggers> 

我是不是错过了一些简单的东西? 非常感谢您提供的任何帮助。
非常感谢。

你把触发器放在
里面了吗

<asp:UpdatePanel ID="UpdatePanel1"  runat="server">
  <Triggers> 
    <asp:PostBackTrigger ControlID="btnUploadFile" /> 
  </Triggers> 
 <rest of the code>
</asp:UpdatePanel>

谢谢你的回复。这不是文件权限问题。已尝试(FileUpload1.FileName)-仍返回string.Empty。我意识到我不能基于按钮放置触发器,因为该方法是由PageLoad事件触发的,该事件在上载程序更改时触发__DoPostBack@JoshuaTan,你试过把
FileUpload
控件放在
updatepanel
之外吗?哇,它在更新面板之外工作!非常感谢。但是我需要它在更新面板中,有没有办法解决这个问题,我仍然发现它非常神秘,到底发生了什么?但真的很高兴它成功了,非常感谢much@JoshuaTan,到目前为止,我还不明白,但我已经编辑了我的答案,把原因放在了外面。如果点击投票按钮下方的复选按钮有帮助,请不要忘记将其标记为答案谢谢你的回复,很抱歉,如果我有15个或更多的代表,我一定会投你一票。但请知道我感谢你的时间和努力。感谢像你这样聪明善良的人=D
<asp:UpdatePanel ID="UpdatePanel1"  runat="server">
  <Triggers> 
    <asp:PostBackTrigger ControlID="btnUploadFile" /> 
  </Triggers> 
 <rest of the code>
</asp:UpdatePanel>
if (FileUpload1.FileName != string.Empty)