0

我有一个FileUpload按钮和两个Submit按钮。第一个,调用Confirm并显示一个页面,其中包含我放入表单中的所有数据,以确认它没问题。第二个,称为Save,将这些数据保存在我的数据库中。

问题是当我单击Confirm按钮时,FileUpload返回trueHasFile属性,但在第二个按钮中,相同的操作返回falseHasFile.

我能做些什么来解决它?

代码

public void Confirm_Click(object sender, EventArgs e)
{
    if (FileUpload1.HasFile)
    {
          // Many validations here
    }
}

public void Save_Click(object sender, EventArgs e)
{
    // Always return false here
    if (FileUpload1.HasFile)
    {
          // Many validations here
    }
}

ASPX 代码

<asp:Content ID="Content2" ContentPlaceHolderID="contentConteudo" runat="server">
   <asp:Panel runat="server" ID="Formulario">
      <asp:Panel ID="pnl_form" runat="server">
         <asp:FileUpload id="FileUpload1" class= "span2" runat="server"></asp:FileUpload>
         <asp:Button ID="Confirm" CssClass="btn btn-netimoveis btn-large" runat="server"
          OnClick="Confirm_Click"  UseSubmitBehavior="false"  Text="Confirmar" />
      </asp:Panel>
 </asp:Panel>
 <asp:Panel ID="pnl_confirm" runat="server">
    <asp:Button ID="Save" CssClass="btn btn-netimoveis btn-large" runat="server"
     Text="Incluir" OnClick="Save_Click" />
</asp:Panel>
4

1 回答 1

0

FileUpload 背后的逻辑不容易理解。文件是如何被获取的,如果它被保存的话。
如果您忽略它,您可以在文件可用时使用它!

public void Confirm_Click(object sender, EventArgs e)
{
    if (FileUpload1.HasFile)
    {
          // Many validations here
          // Keep file in Session or in a temporary storage
    }
}

public void Save_Click(object sender, EventArgs e)
{
    // Take the file from session or temporary storage and save it

    if (myFile != null)
    {
          // Many validations here
     }
}
于 2013-07-10T13:50:12.713 回答