近期做的是对现有项目进行重构。WEB FROM改成MVC,其实也算是推倒重来了。

里面有一个导出功能,将数据输出成txt文件,供下载。原先的做法是有一个隐藏的iframe,在这个iframe的页面中设置一个表单form,将相关参数提交到服务器端;而在服务器端,是真的生成一个文件,然后再将文件内容往客户端推送。

好奇怪的做法啊。将内容导出,让用户下载,不必真的生成文件的,因为内容千变万化,没有一次生成,多次使用的可能和必要。完全可以将内容生成后,直接往客户端推送。

其次,我理解原先为何要用一个隐藏的iframe。因为提交页面会导致刷新,为了避免页面内容刷新,于是搞了个隐藏的iframe,让它来负责提交。好是好,就是要多搞一个页面。

在新项目里面,前端,form由JS动态生成;服务器端,直接生成内容并推送:

前端:

<script type="text/javascript">var f_pointXY = function () {function exportData() {//动态添加表单var form = $("<form>");form.attr('style', 'display:none');form.attr('target', '');form.attr('method', 'post');form.attr('action', "@Url.StaticFile("~/Common/YongHai/ExportData/")" + $("#txt_SMID").val());var input1 = $('<input>');input1.attr('type', 'hidden');input1.attr('name', 'isExportInput');input1.attr('value', document.getElementById("chkInput").checked);var input2 = $('<input>');input2.attr('type', 'hidden');input2.attr('name', 'exportFormat');input2.attr('value', document.getElementById("Select1").value);$('body').append(form);form.append(input1);form.append(input2);try { form.submit(); } catch (ex) { alert(ex); }form.remove();//用完即弃}return {exportData: function () {exportData();}};}();

服务器端:

        [HttpPost]public ActionResult ExportData(int id, FormCollection collection){string content = ...;//生成内容Response.Clear();Response.Buffer = false;Response.ContentType = "application/octet-stream";Response.AppendHeader("content-disposition", "attachment;filename=" + DateTime.Now.ToString("yyyy-MM-dd") + ".txt;");Response.Write(content);Response.Flush();Response.End();return new EmptyResult();}

这样,点击按钮导出按钮

<input type="button" value="导出" class="btn mini minilt" onclick="f_pointXY.exportData()" />

之后,即可下载yyyy-MM-dd.txt矣。

猴赛雷。

asp.net mvc + javascript生成下载文件相关推荐

  1. ASP.NET MVC实现简单的文件上传与下载

    使用ASP.NET MVC实现简单的文件上传与下载. 1.上传文件HTML <form action='@Url.Action("Upload", "File&qu ...

  2. java spring mvc 上传_Java Spring MVC 上传下载文件配置及controller方法详解

    下载: 1.在spring-mvc中配置(用于100M以下的文件下载) 下载文件代码 @RequestMapping("/file/{name.rp}") public Respo ...

  3. php用asp文件js,asp下用fso生成js文件的代码

    asp下用fso生成js文件的代码 更新时间:2008年06月24日 23:47:54   作者: asp下使用fso生成js代码的方法 Set fso= Server.CreateObject(&q ...

  4. 使用mvc模式读取服务器上的文件,ASP.NET MVC之读取服务器文件资源的两种方式

    初次认识asp.net mvc时,以为所有文件都需要走一遍路由,然后才能在客户端显示, 所以我首先介绍这一种方式 比如说:我们在服务器上有图片: ~/resource/image/5.jpg 我们就需 ...

  5. 使用Javascript / jQuery下载文件

    本文翻译自:Download File Using Javascript/jQuery I have a very similar requirement specified here . 我在这里指 ...

  6. 在 JavaScript 如何下载文件

    在 Web 开发中,文件下载功能是一个非常常见的功能.在本文中,将介绍在 JavaScript 中如何实现下载文件. 使用 location.href 当需要打开新页面时,在 JavaScript 中 ...

  7. ASP.NET MVC自定义ActionResult实现文件压缩

    有时候需要将单个或多个文件进行压缩打包后在进行下载,这里我自定义了一个ActionResult,方便进行文件下载 using System; using System.Collections; usi ...

  8. php上传照片到s3云服务器,PHP上传文件到AWS S3生成下载文件URL

    * 加载s3客户端 * @return string*/ functionAWS_S3Client(){$ACCESS_KEY_ID = '你的s3 ID';$SECRET_ACCESS_KEY = ...

  9. Asp.net mvc 实时生成缩率图到硬盘

    之前对于缩率图的处理是在图片上传到服务器之后,同步生成两张不同尺寸的缩率供前端调用,刚开始还能满足需求,慢慢的随着前端展示的多样化,缩率图已不能前端展示的需求,所以考虑做一个实时生成图片缩率图服务. ...

最新文章

  1. matlab蚁群算法 路径规划,基于蚁群算法的机器人路径规划MATLAB源码
  2. Python入门100题 | 第018题
  3. python控制语句中的条件语句_『Python』条件控制语句
  4. matlab曲线拟合法,MATLAB曲线拟合
  5. 在Java EE 7上骑骆驼–带有Swagger文档的REST服务
  6. leetcode704. 二分查找
  7. Bootstrap 模态对话框
  8. 苹果A14芯片GeekBench跑分曝光:单核1583分 多核4198分
  9. java导入功能超时问题
  10. 吉他效果器amplitube 4 mac 完整破解版永久激活方法
  11. oracle wish as,虚拟语气:wish、if only和as if的用法
  12. 2022-2028年中国直线电机行业市场现状分析及投资前景评估报告
  13. Redis采用不同内存分配器碎片率对比
  14. Learn Git Branching学习笔记 Git常用命令
  15. 一条Fofa搜索语法,实现批量挖洞
  16. Excel中 VLOOKUP 函数的使用
  17. Spring boot的特性与四大核心
  18. 数据结构基本概念和术语
  19. AVR 定时器快速PWM模式使用
  20. Android密钥证书管理相关介绍

热门文章

  1. 云来观点:云来Light app优于百度轻应用
  2. 理解Java并发编程:CountDownLatch解析
  3. Cassandra初步学习和性能测试
  4. 怎样使用MindMapper中的聚焦功能
  5. 数据分析必备十大方法!入门新手先学为快
  6. 机器自动翻译古文拼音 - 宋词 - 桂枝香 金陵怀古 王安石
  7. 定义python函数时如果函数中没有return语句_定义Python函数时,如果函数中没有return语句,则默认返回空值None。...
  8. 电脑怎么压缩jpg图片?上传jpg图片过大怎么办?
  9. mysql 省市县镇(乡)四级地区数据库
  10. 洛谷P1498 南蛮图腾(递归,找规律)