【问题标题】:FileUpload.HasFile incorrectly returning falseFileUpload.HasFile 错误地返回 false
【发布时间】:2019-11-01 19:27:43
【问题描述】:

ASP 控件FileUpload 总是为方法FileUpload.HasFile 返回false。我曾尝试使用触发器,但这对我不起作用。

这里是按钮方法

protected void btnUploadFile_Clicked(object sender, EventArgs e)
{
  testMethod();
}

这里是testMethod() if 语句总是评估为假。

protected void testMethod()
{
  if(FileUploadImage.HasFile)
  {
    ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "NoDatabaseAlertMessage", "alert('it work')", true);
  }
  else
  {
    ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "NoDatabaseAlertMessage", "alert('no work')", true);
  }
}

Edit1:这是我尝试实现的 html 触发器内容,但未成功

<div>
  <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>

  <asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Always" runat="server">
    <Triggers>
      <asp:PostBackTrigger ControlID="btnUploadFile" />
    </Triggers>
  </asp:UpdatePanel>

  <asp:FileUpload ID="FileUploadImage" runat="server" />

  <asp:Button ID="btnUploadFile" runat="server" Text="Upload File" class="btn btn-primary transition-3d-hover" OnClick="btnUploadFile_Clicked" />

</div>

【问题讨论】:

  • 您的 FileUpload 是否在 Page.PostBack 上被重置?编辑:和 String.Format() 那个文本!好难看……
  • 在 Page_Load 事件中,是否有设置 FileUpload 值的代码?简而言之,当您单击一个按钮(即上传文件)时,它会在运行按钮单击事件之前回传到服务器并再次点击 Page_Load,因此,如果您有默认 FileUpload 字段的代码(未包装在!Page.IsPostBack 检查)然后该默认设置将被重置,并且您将不会在其中保留要上传的文件。
  • 再说一次,这只是一个想法——这是我在点击一个值后检查是否丢失值(在文本框、网格等中)的第一件事。当我认为我应该仍然存在该值时,单击按钮并发回。
  • @griffin_cosgrove 这些问题都围绕着你如何调用renameFilePath 方法。请在您的问题中包括这一点,否则我们都会猜测。另外,您说您尝试使用触发器。如果上传 ctrl 在更新面板中,它将不起作用。它们不适用于更新面板。
  • 你能发布你的文件上传按钮点击代码吗?尝试 FileUpload.HasFile 而不是 FileUploadImage.Has.File。

标签: c# html css asp.net


【解决方案1】:

我注意到我团队中的某个人对 .aspx 文件中的代码进行了错误的编辑,并且没有关闭表单标签。关闭表单标签后,问题消失了,控件按预期运行。

【讨论】:

    猜你喜欢
    • 2016-10-16
    • 1970-01-01
    • 2017-04-23
    • 1970-01-01
    • 1970-01-01
    • 2012-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多