【发布时间】:2020-03-15 20:28:09
【问题描述】:
我正在维护一个旧版 VB.Net Webforms 应用程序,添加一个部分后我遇到了一个奇怪的问题。
这是在进行回发时显示 giphy.gif 的 aspx 页面中的代码:
<style type="text/css">
.modalWait
{
position: fixed;
top: 0;
left: 0;
background-color: black;
z-index: 99;
opacity: 0.5;
filter: alpha(opacity=80);
-moz-opacity: 0.8;
min-height: 100%;
width: 100%;
}
.loading
{
font-family: Arial;
font-size: 10pt;
/*border: 5px solid #67CFF5;*/
width: 100px;
height: 100px;
display: none;
position: fixed;
background-color: transparent;
z-index: 999;
}
</style>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
function ShowProgress() {
setTimeout(function () {
var modal = $('<div />');
modal.addClass("modalWait");
$('body').append(modal);
var loading = $(".loading");
loading.show();
var top = Math.max($(window).height() / 2 - loading[0].offsetHeight / 2, 0);
var left = Math.max($(window).width() / 2 - loading[0].offsetWidth / 2, 0);
loading.css({ top: top, left: left });
}, 200);
}
$('form').live("submit", function () {
ShowProgress();
});
</script>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<form runat="server">
<asp:ScriptManager runat="server"></asp:ScriptManager>
<!-- Page Wrapper -->
<div id="wrapper">
<!-- More Code -->
</div>
<!-- End of Page Wrapper -->
<div class="loading" align="center">
<%--Loading. Please wait.<br /><br />--%>
<img src="../img/giphy.gif" />
</div>
</form>
并且非常适合填充控件的所有查询 - .gif 在调用数据库时出现然后消失。
但后来我添加了一个函数来将数据网格读入 .csv 然后下载它。它工作得很好,除非我在后面的代码中添加这部分:
Dim bytes As Byte() = Encoding.ASCII.GetBytes(sb.ToString())
Response.Clear()
Response.ContentType = "text/csv"
Response.AddHeader("Content-Length", bytes.Length.ToString())
Response.AddHeader("Content-disposition", "attachment; filename=contacts.csv")
Response.Write(sb.ToString())
Response.Flush()
Response.End()
文件下载完美……但 giphy.gif 仍然存在……即使回发完成,它也不会消失。
我做错了什么?
【问题讨论】:
-
我在一个应用程序中遇到了类似的问题,但不同之处在于它会引发内部异常并仍然下载文件,就我而言,我建议将该 VB 代码放入 ASHX 形式并将客户端重定向到该表单以下载文件
标签: c# jquery asp.net vb.net webforms