c# - 上传文件控件在后面的代码中不显示任何文件

标签 c# jquery asp.net

我有一个非常简单的应用程序。我正在尝试使用 ASP.net 的文件上传控件上传文件。下面是我的整个 .cs 代码和 .aspx 代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace TestFileUpload1
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void uploadFile_Click(object sender, EventArgs e)
        {

            if (UploadImages.HasFiles)
            {
                foreach (HttpPostedFile uploadedFile in UploadImages.PostedFiles)
                {
                    uploadedFile.SaveAs(System.IO.Path.Combine(Server.MapPath("~/Images/"), uploadedFile.FileName));
                    //listofuploadedfiles.Text += String.Format("{0}<br />", uploadedFile.FileName);
                }
            }
        }
    }
}

我的.aspx代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="TestFileUpload1.WebForm1" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Test web site</title>
       <script src="Scripts/jquery-1.11.0.js"></script>

  <script src="Scripts/jquery.mobile-1.4.5.js"></script>
</head>
<body>
    <form id="form1" runat="server">
        <div>
              <div>
             <asp:FileUpload runat="server" ID="UploadImages" AllowMultiple="true" />  
            <asp:Button runat="server" ID="uploadedFile" Text="Upload" OnClick="uploadFile_Click" />  
             <asp:Label ID="listofuploadedfiles" runat="server" />  
        </div>
        </div>
    </form>
</body>
</html>

每当我尝试上传文件时,UploadImages.HasFiles 都会得到“False”。 以上是完整的工作示例。 一旦我删除这些脚本标签之一:

 <script src="Scripts/jquery-1.11.0.js"></script>

  <script src="Scripts/jquery.mobile-1.4.5.js"></script>

我的代码开始工作,当我尝试上传文件时,UploadImages.HasFiles 得到“true”。

我使用的是.net框架4.7.2

由于 GUI 的原因,我需要将这两个脚本标记保留在我的代码中,并且这是一个旧的应用程序,这些标记在所有页面中都使用。

我还尝试将控件包装在更新面板中,但这也不起作用。下面是更改后的 .aspx 页面。不过,我希望我的原始代码能够工作。我不想使用 ajax,但我只是尝试使用它,因为它被建议作为解决方案之一

  <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="TestFileUpload1.WebForm1" %>
<%--<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit"  TagPrefix="asp"%>--%>
<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Test web site</title>
       <script src="Scripts/jquery-1.11.0.js"></script>

  <script src="Scripts/jquery.mobile-1.4.5.js"></script>
</head>
<body>
    <form id="form1" runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
        <div>
              <div>
                  <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                        <ContentTemplate>
                            <asp:FileUpload runat="server" ID="UploadImages" AllowMultiple="true" />
                        </ContentTemplate>
                       <Triggers>
                           <asp:PostBackTrigger ControlID="uploadedFile" />
                        </Triggers>
                      
                      </asp:UpdatePanel>
              <asp:Button runat="server" ID="uploadedFile" Text="Upload" OnClick="uploadFile_Click" />
             <asp:Label ID="listofuploadedfiles" runat="server" />  
                      
        </div>
        </div>
    </form>
</body>
</html>

下面是我在代码后面得到的错误值的图像:

enter image description here

任何帮助将不胜感激。

最佳答案

我所要做的就是将 data-ajax ="false"放入表单标签中,从而解决了问题。

  <form id="form1" runat="server" data-ajax ="false">

关于c# - 上传文件控件在后面的代码中不显示任何文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63044872/

相关文章:

asp.net - Swagger 忽略 xml 参数标签

c# - 如何正确地将一个网站分成不同的区域?

c# - 使用 LINQ 过滤必要的数据

c# - 为什么新的 AppDomain 会加载不必要的 DLL?

c# - 将 LINQ 转换为 .NET 2.0

javascript - 离开页面时如何使用JS/jquery进行确认

javascript - 按类划分的元素的最大高度不会在屏幕调整大小时更新

c# - 使用 Sound Effect 同时播放音频片段时出现延迟

javascript - Jquery 选择器后的 [] 括号是什么意思?

c# - AjaxControlToolkit AjaxFileUpload 无法上传 IIS 保留文件类型