修改
我有上传结果操作,返回新页面可能需要几分钟。我想在div中设置加载图像。
我不知道为什么,但我觉得这不是正确的方法。在ASP.NET中显示加载屏幕/添加加载图像的正确方法是什么。
我有这个:
[HttpPost]
public ActionResult UploadTarget(UploadViewModel model)
{
//code that takes minutes
return RedirectToAction("UploadSuccess", "Upload");
}
如何在开始运行uploadtarget函数之前触发函数。
<script>
function wait() {
document.getElementById("wait").innerHTML = '<img src="/Images/wait.png" alt="Smiley face" height="42" width="42"> ';
}
</script>
<div class="col-md-6">
@using (Html.BeginForm("UploadActual", "Upload", FormMethod.Post, new { enctype = "multipart/form-data" })) {
@Html.AntiForgeryToken()
@Html.EditorFor(model => model.Remark)
@Html.ValidationMessageFor(model => model.Remark)
<input onclick="wait()"type="submit" value="Create" class="btn btn- primary btn-lg"/>
}
</div>
<div id="wait"class="col-md-6"></div>
它在RedirectToaction之后运行我的javascript函数。所以它什么都不做了。我怎样才能解决这个问题?用c#还是javascript?还是有其他好的解决方案吗?
答案 0 :(得分:0)
您可以立即显示图像,然后在超时时提交表单,以显示图像时间。像这样:
function wait() {
document.getElementById("wait").innerHTML = '<img src="/Images/wait.png" alt="Smiley face" height="42" width="42"> ';
setTimeout(function(){document.getElementById("myForm").submit()},10);
}
<input onclick="wait()"type="button" value="Create" class="btn btn- primary btn-lg"/>
my&#34; myForm&#34;是您表单的ID。