如何下载服务器在Ajax调用中返回的文件?

埃里卡·斯托克韦尔·阿尔珀特

我有一个下载功能,其想法是当用户单击一个按钮时,它将对一个函数进行ajax调用,该函数将创建一个包含用户正在查看的所有信息的csv文件,并将该文件作为下载返回。我有创建csv文件的服务器功能,但不确定如何下载它。这是我的服务器端代码:

public ActionResult Download(Guid customerOrderId)
{
    var order = this.UnitOfWork.GetRepository<CustomerOrder>().Get(customerOrderId);

    var csv = new StringBuilder();

    csv.Append("Customer,Bill To Name,Ship To Name,Patient,Order#,Order Date," +
        "Line,Item#,Item Description,Qty,UOM,Price,Ext Price,Carrier," +
        "Notes,Purchase Order");

    var customer = order.CustomerNumber;
    var billToName = order.BTDisplayName;
    var shipToName = order.ShipTo.CustomerName;
    var orderNum = order.OrderNumber;
    var orderDate = order.OrderDate;
    var carrier = order.ShippingDisplay;
    var notes = order.Notes;
    var subtotal = order.OrderSubTotalDisplay;
    var total = order.OrderGrandTotalDisplay;
    var shipping = order.ShippingAndHandling;
    var tax = order.TotalSalesTaxDisplay;
    var patient = "";
    var purchaseOrder = order.CustomerPO;
    foreach (var cartLine in order.OrderLines)
    {
        var line = cartLine.Line;
        var itemNum = cartLine.Product.ProductCode;
        var itemDesc = cartLine.Description;
        var qty = cartLine.QtyOrdered;
        var uom = cartLine.UnitOfMeasure;
        var price = cartLine.ActualPriceDisplay;
        var ext = cartLine.ExtendedActualPriceDisplay;

        //Customer,Bill To Name,Ship To Name,Patient,Order#,Order Date," + 
        //"Line,Item#,Item Description,Qty,UOM,Price,Ext Price,Carrier," +
        //"Notes,Purchase Order
        var newLine = string.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13},{14},{15}",
            customer, billToName, shipToName, patient, orderNum, orderDate, line, itemNum, itemDesc,
            qty, uom, price, ext, carrier, notes, purchaseOrder);

        csv.AppendLine(newLine);
    }

    csv.AppendLine();
    csv.AppendLine("Subtotal,Shipping & Handling,Tax,Total");
    csv.AppendLine(string.Format("{0},{1},{2},{3}", subtotal, shipping, tax, total));

    var filename = "MSD-Order-" + orderNum + ".csv";            

    var bytes = Encoding.UTF8.GetBytes(csv.ToString());
    return this.File(bytes, "text/csv");
}

这是ajax方法:

function download(customerOrderId) {
    $.ajax({
        url: insite.core.actionPrefix + '/Checkout/Download/?customerOrderId=' + customerOrderId,
        type: 'Post',
        contentType: "application/json; charset=utf-8",
        async: false,
        cache: false,
        success: function (data) {
            alert("downloaded");
        },
        error: function (ex) {
            console.log(ex);
        }
    });    
}

在成功执行ajax调用后,我检查了“数据”的值,它具有信息,但是我不确定如何下载它。收到数据后该怎么办?

高贵的

您不能仅通过这样的href下载吗?

public FileContentResult Download(Guid customerOrderId)
{
    // your code

    var response = new FileContentResult(bytes, "text/csv");
    response.FileDownloadName = filename;
    return response;
}

链接:

<a href="Checkout/Download/?customerOrderId=someId">Download</a>

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Chrome调试器中的Ajax调用后调试从服务器返回的JavaScript

来自分类常见问题

在React中如何从服务器下载文件?

来自分类Dev

在React中如何从服务器下载文件?

来自分类Dev

如何从服务器下载python中的csv文件?

来自分类Dev

通过AJAX的ASMX调用返回内部服务器错误

来自分类Dev

如何使用 Jquery 在 Ajax 调用中调用 Mvc 服务器端验证

来自分类Dev

如何从服务器下载文件(sso和https)

来自分类Dev

如何下载FTP服务器的最早文件?

来自分类Dev

如何从服务器或本地Xampp下载文件?的PHP

来自分类Dev

如何从Blazor服务器端下载内存文件

来自分类Dev

如何从javascript的服务器响应中下载XLSX文件?

来自分类Dev

如何通过javascript从tomcat服务器下载文件?

来自分类Dev

如何在Windows服务器上下载文件?

来自分类Dev

如何通过SSH服务器下载文件?

来自分类Dev

如何下载FTP服务器的最早文件?

来自分类Dev

如何使用WinSCP从FTP服务器下载特定文件?

来自分类Dev

如何在Python中从本地服务器下载文件

来自分类Dev

如何从Spring Integration ftp中的服务器下载以“ xyz”开头的文件名?

来自分类Dev

如何从服务器下载文件并在 Node.js 中同步重命名?

来自分类Dev

从Java中的FTP服务器下载/复制文件

来自分类Dev

从AJAX调用服务器方法打开文件

来自分类Dev

没有在服务器中保存文件,我无法通过Spring MVC中的Ajax下载文件

来自分类Dev

如何在 Laravel 中返回有效的服务器 URL 可下载路径而不是 JSON 返回响应

来自分类Dev

如何从FTP服务器下载文件,然后在下载完成后自动从服务器删除文件?

来自分类Dev

从服务器端成功返回到Ember.js中的Ajax调用要返回的内容

来自分类Dev

NodeJS如何通过POST从jquery ajax调用发送的服务器中获取数据

来自分类Dev

如何在服务器端响应ajax调用?

来自分类Dev

如何定期对跨域服务器进行AJAX调用

来自分类Dev

如何在服务器端响应ajax调用?

Related 相关文章

  1. 1

    如何在Chrome调试器中的Ajax调用后调试从服务器返回的JavaScript

  2. 2

    在React中如何从服务器下载文件?

  3. 3

    在React中如何从服务器下载文件?

  4. 4

    如何从服务器下载python中的csv文件?

  5. 5

    通过AJAX的ASMX调用返回内部服务器错误

  6. 6

    如何使用 Jquery 在 Ajax 调用中调用 Mvc 服务器端验证

  7. 7

    如何从服务器下载文件(sso和https)

  8. 8

    如何下载FTP服务器的最早文件?

  9. 9

    如何从服务器或本地Xampp下载文件?的PHP

  10. 10

    如何从Blazor服务器端下载内存文件

  11. 11

    如何从javascript的服务器响应中下载XLSX文件?

  12. 12

    如何通过javascript从tomcat服务器下载文件?

  13. 13

    如何在Windows服务器上下载文件?

  14. 14

    如何通过SSH服务器下载文件?

  15. 15

    如何下载FTP服务器的最早文件?

  16. 16

    如何使用WinSCP从FTP服务器下载特定文件?

  17. 17

    如何在Python中从本地服务器下载文件

  18. 18

    如何从Spring Integration ftp中的服务器下载以“ xyz”开头的文件名?

  19. 19

    如何从服务器下载文件并在 Node.js 中同步重命名?

  20. 20

    从Java中的FTP服务器下载/复制文件

  21. 21

    从AJAX调用服务器方法打开文件

  22. 22

    没有在服务器中保存文件,我无法通过Spring MVC中的Ajax下载文件

  23. 23

    如何在 Laravel 中返回有效的服务器 URL 可下载路径而不是 JSON 返回响应

  24. 24

    如何从FTP服务器下载文件,然后在下载完成后自动从服务器删除文件?

  25. 25

    从服务器端成功返回到Ember.js中的Ajax调用要返回的内容

  26. 26

    NodeJS如何通过POST从jquery ajax调用发送的服务器中获取数据

  27. 27

    如何在服务器端响应ajax调用?

  28. 28

    如何定期对跨域服务器进行AJAX调用

  29. 29

    如何在服务器端响应ajax调用?

热门标签

归档