使用angular.js,asp.net下载文件

Qwerty

我试图通过单击按钮下载Excel文件(动态生成)。当代码放置在服务器端(Reports.aspx.cs)且单击按钮时有回发时,此功能可以正常工作。但是,现在,前端技术是Angular。因此没有回发。尝试在处理程序中使用相同的下载代码,并且不会发生下载。没有保存提示,没有错误。断点虽然击中handler.cs。

Reports.aspx:

<button type="button" data-ng-click="DownloadExcelReport()">Download Report</button>

ReportsCtrl.js --controller

$scope.DownloadExcelReport = function () {        
        ReportsFactory.DownloadReport($scope.ReportId,$scope.SetId);       
    }

ReportsFactory.js --service

factory.DownloadReport = function (reportId, setId) {
return $http({
   url: "http://localhost:62102/download.ashx?reportId=" + reportId + "&setId=" + setId,
            method: "GET"            
        }).success(function (data, status) {
        }).error(function (data, status) {
        });
}

download.ashx.cs --handler

public void ProcessRequest(HttpContext context)
    {

        int reportId = Convert.ToInt32(context.Request.QueryString["reportId"]);
        int setId = Convert.ToInt32(context.Request.QueryString["setId"]);            
        switch (reportId)
        {
            case 1:
                DataTable dt = GetData(reportId, setId);
                if (dt != null)
                {

                    string FileName = "Responses";

                    ExportExcel obj = new ExportExcel();
                    obj.showGridLines = true;
                    obj.headerStyle = new Style(Color.SlateGray, Color.White, Color.SlateGray, ExcelBorderStyle.Thin);
                    MemoryStream ms = obj.GenerateDocument(dt);
                    HttpContext.Current.Response.Clear();
                    HttpContext.Current.Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
                    HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=\"" + FileName + ".xlsx" + "\"");
                    HttpContext.Current.Response.BinaryWrite(ms.ToArray());
                    HttpContext.Current.Response.Flush();
                    HttpContext.Current.Response.End();                        
                }
                break;

        }
    }

编辑:

后来我被告知,当使用Javascript下载时,方法是不同的。您创建一个表单,然后提交带有参数的表单。我已经添加了工作解决方案。

这可能会帮助某人。

Qwerty

ReportsFactory.js --service

factory.DownloadReport = function (reportId, setId) {
        var form = document.createElement("form");
        form.action = "http://localhost:62102/download.asmx/DownloadReport";
        form.method = "POST";
        form.target = "_self";
        var input = document.createElement("input");
        input.type = "text";
        input.name = "params";
        input.value = reportId + "," + setId;
        form.appendChild(input);        
        form.style.display = 'none';
        document.body.appendChild(form);
        form.submit();        
    };

现在使用asmx文件而不是处理程序。

download.asmx.cs

[WebMethod]
public void DownloadReport()
{
   string[] Params = Convert.ToString(HttpContext.Current.Request.Form["params"]).Split(',');
   string FileName = "Reports_";
   int reportId = Convert.ToInt32(Params[0]);
   int setId = Convert.ToInt32(Params[1]);
   DataTable dt = GetData(reportId,setId);
   ExportExcel obj = new ExportExcel();
   MemoryStream ms = obj.GenerateDocument(dt);
   HttpContext.Current.Response.Clear();
   HttpContext.Current.Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
   HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=\"" + FileName + ".xlsx" + "\"");
   HttpContext.Current.Response.BinaryWrite(ms.ToArray());
   HttpContext.Current.Response.Flush();
   HttpContext.Current.Response.End();   
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用asp.net mvc下载文件

来自分类Dev

如何使用ASP.NET下载文件

来自分类Dev

使用asp.net mvc下载文件

来自分类Dev

尝试使用 angular 5 和 asp.net core 从数据库下载文件

来自分类Dev

在ASP.NET中使用HttpContext.Current.Response.TransmitFile的ASP.net下载文件

来自分类Dev

使用Asp.Net IHttpHandler下载文件会产生不同的文件属性结果

来自分类Dev

更改时部署ASP.Net MVC,Angular应用程序下载文件

来自分类Dev

使用asp.net Web表单中的流返回可下载文件

来自分类常见问题

使用AngularJS从ASP.NET Web API方法下载文件

来自分类Dev

如何在buttton的onClick事件中使用asp.net下载文件?

来自分类Dev

使用Blazor Webassembly和ASP.NET Core安全下载文件

来自分类Dev

使用asp.net mvc从Google Drive Api下载文件的问题

来自分类Dev

如何使用goutte从asp.net表单本地保存下载文件

来自分类Dev

使用 asp.net web 表单 Gridview 从 SQL 数据源下载文件

来自分类Dev

使用Node Express JS下载文件

来自分类Dev

在Asp.net上下载文件

来自分类Dev

使用VB.net下载文件

来自分类Dev

如何在ASP.NET Core中使用客户端下载文件并作出反应?

来自分类Dev

在ASP.NET MVC 5控制器中使用POST从dotnet Core Web API下载文件

来自分类Dev

使用ASP MVC从远程服务器下载文件

来自分类Dev

使用ASP MVC从远程服务器下载文件

来自分类Dev

当文件位于其他服务器上时,使用ASP.Net MVC在浏览器中强制下载文件,而无需先在我的服务器上下载文件

来自分类Dev

从asp.net中的文件夹下载文件

来自分类Dev

从asp.net中的文件夹下载文件

来自分类Dev

如何使用HTTPS使用Node.js下载文件?

来自分类Dev

使用node.js,流和promise下载文件

来自分类Dev

Express js:如何使用POST请求下载文件

来自分类Dev

使用node.js从POST请求下载文件

来自分类Dev

使用Ext JS 6下载文件

Related 相关文章

  1. 1

    使用asp.net mvc下载文件

  2. 2

    如何使用ASP.NET下载文件

  3. 3

    使用asp.net mvc下载文件

  4. 4

    尝试使用 angular 5 和 asp.net core 从数据库下载文件

  5. 5

    在ASP.NET中使用HttpContext.Current.Response.TransmitFile的ASP.net下载文件

  6. 6

    使用Asp.Net IHttpHandler下载文件会产生不同的文件属性结果

  7. 7

    更改时部署ASP.Net MVC,Angular应用程序下载文件

  8. 8

    使用asp.net Web表单中的流返回可下载文件

  9. 9

    使用AngularJS从ASP.NET Web API方法下载文件

  10. 10

    如何在buttton的onClick事件中使用asp.net下载文件?

  11. 11

    使用Blazor Webassembly和ASP.NET Core安全下载文件

  12. 12

    使用asp.net mvc从Google Drive Api下载文件的问题

  13. 13

    如何使用goutte从asp.net表单本地保存下载文件

  14. 14

    使用 asp.net web 表单 Gridview 从 SQL 数据源下载文件

  15. 15

    使用Node Express JS下载文件

  16. 16

    在Asp.net上下载文件

  17. 17

    使用VB.net下载文件

  18. 18

    如何在ASP.NET Core中使用客户端下载文件并作出反应?

  19. 19

    在ASP.NET MVC 5控制器中使用POST从dotnet Core Web API下载文件

  20. 20

    使用ASP MVC从远程服务器下载文件

  21. 21

    使用ASP MVC从远程服务器下载文件

  22. 22

    当文件位于其他服务器上时,使用ASP.Net MVC在浏览器中强制下载文件,而无需先在我的服务器上下载文件

  23. 23

    从asp.net中的文件夹下载文件

  24. 24

    从asp.net中的文件夹下载文件

  25. 25

    如何使用HTTPS使用Node.js下载文件?

  26. 26

    使用node.js,流和promise下载文件

  27. 27

    Express js:如何使用POST请求下载文件

  28. 28

    使用node.js从POST请求下载文件

  29. 29

    使用Ext JS 6下载文件

热门标签

归档