【发布时间】:2014-10-10 16:51:57
【问题描述】:
在我的 ASP.NET Web 表单应用程序中,我添加了一个上传文件的功能,但我不想进行完整的回发。因此,为了使其异步,我想到了使用 UpdatePanel。 此 UpdatePanel 包含一个 FileUpload 控件和一个用于上传所选照片的按钮。当我在调试代码以检测文件是否被实际选中时,我发现 FileUpload 的 HasFile 属性为 false。
当我删除 UpdatePanel 时它可以工作,但我不明白为什么。
为了帮助你理解,下面是代码:
ASPX 标记:
<asp:UpdatePanel ID="UPProf" runat="server">
<ContentTemplate>
<asp:FileUpload ID="FUDP" runat="server" />
<asp:Button ID="BUDP" runat="server" OnClick="BUDP_Click" Text="Upload your photo" />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="BUDP" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
这是它的 CS 代码:
protected void BUDP_Click(object sender, EventArgs e)
{
try
{
if (FUDP.HasFile) // code doesn't pass this if condition
{
FUDP.SaveAs("D:/Pictures/" + count + ".jpeg"); //it doesn't work since there is no file here
}
else
{
//Set some message for user
}
}
catch (Exception ex)
{
//log the error
}
}
【问题讨论】:
标签: c# asp.net .net file-upload asp.net-ajax