【发布时间】:2020-01-22 12:31:58
【问题描述】:
我的 MVC Web 应用程序上有一个上传按钮,允许用户上传文件。该文件被上传到系统上,并对该文件执行一些异步操作,这可能需要 1/2 分钟。我想在用户按下上传按钮时显示 processing.gif,然后在异步操作完成时隐藏 .gif,即“return View();”时已从 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();
}
【问题讨论】:
标签: javascript c# asp.net asp.net-mvc