asp.net - 在 ASP.NET 中下载 Excel 后执行代码
问题描述
我有一段代码在导入后下载无效记录的 excel。
我想在这种部分成功导入后刷新一个网格。但是,excel自动下载后的代码没有执行。
Response.Clear();
Response.ClearHeaders();
Response.ClearContent();
Response.AddHeader("content-disposition", "attachment; filename=" + PathToExcelFile);
Response.AddHeader("Content-Type", "application/Excel");
Response.AddHeader("Content-Length", file.Length.ToString());
Response.WriteFile(file.FullName);
HttpContext.Current.Response.Flush(); // Sends all currently buffered output to the client.
HttpContext.Current.Response.SuppressContent = true; // Gets or sets a value indicating whether to send HTTP content to the client.
HttpContext.Current.ApplicationInstance.CompleteRequest();
我发现 Response.Flush() 会抛出一个 Thread Abort 异常。因此将其更改为 CompleteRequest()。但是,仍然没有运气。
不知道我做错了什么?
解决方案
将文件名/路径等保存到 ViewState 变量中,然后调用 window.open 到一个单独的 download.aspx 页面,该页面处理文件的下载。在下载页面中,引用您之前设置的 ViewState 变量。在原始(不是下载)页面中,您可以在 window.open 调用之后执行您喜欢的任何代码。
推荐阅读
- javascript - 拖动元素但不放下
- css - 如何将块固定到视图底部并在空时阻止它比视口延伸得更长
- c - 在 gdb-multiarch 中指定架构
- excel - 从列表中提取第一个/最后一个值
- python - Keras 使用 ImageDataGenerator 时出错
- weblogic - tthread转储中的争用是否意味着开发人员编写的代码效率不高,或者jvm内部线程也可能导致争用?
- nlp - Kaldi-for-Dummies 教程——run.sh 脚本在准备声学数据时抛出“目录中没有此类文件”错误
- python - 无法远程运行 selenium 脚本
- python - 在 pymssql 中调用 SQL SERVER 的存储过程时传递可选参数
- filter - 在过滤器数据阶段转义单引号或 aphosthrope