惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Recent Announcements
Recent Announcements
J
Java Code Geeks
雷峰网
雷峰网
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
腾讯CDC
博客园 - 司徒正美
B
Blog RSS Feed
博客园 - 三生石上(FineUI控件)
I
InfoQ
N
Netflix TechBlog - Medium
L
LangChain Blog
博客园_首页
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
Tailwind CSS Blog
MyScale Blog
MyScale Blog
美团技术团队
The Cloudflare Blog
爱范儿
爱范儿
Stack Overflow Blog
Stack Overflow Blog
博客园 - 聂微东
H
Help Net Security
Martin Fowler
Martin Fowler
V
Visual Studio Blog

博客园 - ahui

解决在IIS中调用Microsoft Office Excel组件后进程无法正常退出的问题 Javascript实现scroll时固定html元素 轻量级DbHelper同时支持多个不同的数据库 Emit实现简单的C# AOP框架 Reflector的替代方案 .NET2.0项目Ajax请求处理 EntityFramework4.1和ADO.NET插入操作性能比较 一道算法题(负数左边,正数右边)的最优答案 MVC+ExtJs之验证信息无缝结合 16进制字符串和Byte之间的互转 设置预览图片自适应(保持原比例) Entity Framework4.1实现动态多条件查询、分页和排序 C#读写socket的常用方式 异步接收Socket数据 Mysql备份代码 android下修改hosts文件 Android和.NET通用的AES算法 .NET和Android解压缩处理 Android轻量级JSON操作类
[小技巧]提交数据并下载文件的实现方式
ahui · 2012-08-22 · via 博客园 - ahui

在web开发中,经常会碰到数据已经在页面中显示,但又要下载Excel格式的报表的情形

显示在服务器重新计算一次比较耗时,这些一般会把页面上的数据post到服务器,服务器产生二进制的excel响应流然后发送给服务器端

1.方法一:

<form id="form2" action="/download.ashx" method="post" target="_self">
<input name="id" type="hidden" value="1" />
<input type="submit" value="iframe submit" />
</form>

这种方法一般情况下不会出问题,但如果服务器处理数据失败,整个页面就会显示异常信息。可以把target改为_blank,这样弹出新窗口处理,无论如何不会影响原页面

2.方法二:

<form id="form2" action="/download.ashx" method="post" target="iframe1">
<input name="id" type="hidden" value="1" />
<input type="submit" value="iframe submit" />
</form>

<iframe name="iframe1" frameborder="0" src="" style="display:none"></iframe>

用了掩藏的iframe,既不会弹出新窗口,下载万一失败也不影响当前页面.