我在MVC Web应用程序上有一个上传按钮,该按钮允许用户上传文件。该文件被上载到系统上,并且对该文件进行了一些异步操作,这可能需要1/2分钟的时间。我想在用户按下上传按钮时显示processing.gif,然后在异步操作完成后(即“ return View();”时)隐藏.gif。发生在HttpPost Upload控制器上。谁能告诉我实现此目的的最简单方法?我一直在搞乱它,无法使其正常工作。如下面的代码所示,processing.gif图像当前处于隐藏状态:

上传视图:

<h4><strong>Upload Survey</strong></h4>


<div>
    <p><strong>Upload Surveys in .PDF format</strong></p>
    <br />

    <form class="btn btn-default" method="post" enctype="multipart/form-data" action="@Url.Action("Upload", "CompletedCamps")">
        <div>
            <input name="file" type="file" class="btn btn-link" required />
            <br />
            <button type="submit" class="btn btn-block btn-primary">Import</button>

        </div>

    </form><img id="loading" src="../../Content/processing.gif" alt="Updating ..." style="display:none" />
</div>
<br />


上传控制器:

    [HttpGet]
    public ActionResult Upload(int? id)
    {
        CompletedCamp completedCamp = db.CompletedCamps.Find(id);
        return View(completedCamp);
    }

    [HttpPost]
    public async Task<ActionResult> Upload(HttpPostedFileBase file, int? id)
    {
        CompletedCamp completedCamp = db.CompletedCamps.Find(id);

        string filename = Guid.NewGuid() + Path.GetExtension(file.FileName);
        string filepath = Server.MapPath(Path.Combine("~/Surveys/", filename));
        file.SaveAs(filepath);
        await AzureVisionAPI.ExtractToTextFile(filepath);
        ParseSurveyText parse1 = new ParseSurveyText();
        await Task.Run(() => parse1.ParseTextFile(completedCamp.RollNumber, completedCamp.OfficialSchoolName, completedCamp.Date));



        return View();
    }

最佳答案

您可以使用客户端代码(如jquery)注册表单提交按钮,以便在提交表单后立即显示加载程序。代码将类似于:

$("form#formId").submit(function(){
   $("img#loading").show();
});


确保添加id属性,该id将在jquery代码中使用。

相关的html应该看起来像:

<form id="formId" class="btn btn-default" method="post"
      enctype="multipart/form-data" action="@Url.Action("Upload", "CompletedCamps")">
......
......
</form><img id="loading" src="../../Content/processing.gif"
            alt="Updating ..." style="display:none" />


希望这有意义并给您想法。

关于javascript - 在上传按钮旁边实现进度.gif,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59859860/

10-16 10:00