【问题标题】:Download file in AJAX from MVC FileStream ActionResullt从 MVC 文件流 ActionResult 下载 AJAX 文件
【发布时间】:2015-04-23 23:07:02
【问题描述】:

我正在使用 MVC

我的一个视图中有一个对话框。

我的对话

$("#dialog-confirm").dialog({
            autoOpen: false,
            resizable: false,
            height: 390,
            width: 402,
            modal: true,
            buttons: {
                "Generate Report": function () {                        
                    $.ajax({
                        type: "GET",
                        url: '/Report/Report', 
                        data: 
                            { 
                                reportName : $('#dialogReportTypeID').val(),
                                reportData: $('#dialogPrintFormatSelector').val()"
                            }, 
                        dataType: 'html',
                        success: function(data)
                        {
                            $('body').html(data);
                        }
                    });

                    $(this).dialog("close");
                },
                Cancel: function () {
                    $("#cancel").text("");
                    $(this).dialog("close");
                }
            }
        });

对话框调用不同的控制器。控制器向 AJAX 返回一个 ActionResult。 ActionResult 是 HTML 或打算下载的“FileStream”。

页面被$('body').html(data); 重写,但似乎FileStream 的序列化值只被传回。因为我在屏幕上看到它没有任何格式,只是数据...

问:如何下载来自Controller的Action Result的文件?

【问题讨论】:

标签: jquery ajax asp.net-mvc


【解决方案1】:

如果成功找到/创建了 Html,则将 html 与正文绑定,否则调用 javascript windows.open 来检索文件。

试试下面

    $.ajax({
    ..
     success: function(data)
     {
      if( data.getResponseHeader('content-type').indexOf('text/html') >= 0 ){
        $('body').html(data);
        }
        else{
        window.open('http://'+path+data); 
        }        
     }
    ..
    })

【讨论】:

  • 这不只是将路径和文件内容附加到URL吗?
猜你喜欢
  • 2017-06-13
  • 2018-02-21
  • 2013-05-16
  • 2015-05-29
  • 2019-10-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多