Jquery 基于MVC 模式下载文件

现在的项目是一个基于Backbone.js 和MVC 框架。 现在想通过前端的一个download button 实现文件下载。

Backbone.js 的请求响应机制基于Ajax,Ajax 不支持流类型,想要前端显示下载对话框,就要放弃ajax 的方法。

所以我选择前端创建form表单并提交的方式。

Js:

<script type="text/javascript">
  var form = $('<form></form>');
    form.attr('method', 'POST');
    form.attr('action', 'Account/Download');
    form.attr('style', 'display:none');
    var inputFileName = $('<input name="fileName" value="" />');
    inputFileName.attr('value', 'Chinese.csv');
    form.append(inputFileName);

    $('html').append(form);  // 狠狠狠重要, 否则submit()不起作用
    form.submit();
</script>

 

AccountController:

      

        public FileContentResult Download(string fileName)
        {
             var file = HttpContext.Current.Server.MapPath("~/Content/Static/") + fileName;
            try
            {
                var fileContent = File.ReadAllBytes(file);

                if (fileContent != null)
                {
                  return this.File(fileContent, "text/csv", "Downloaded.csv");
                }
               return null;
            }
            catch (Exception ex)
            {
                return null
            }  
        }

 

转载于:https://www.cnblogs.com/pangxiaohai/p/6030879.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值