使用jQuery AJAX调用导出CSV

本文关键字:CSV 调用 jQuery AJAX 使用 | 更新日期: 2023-09-27 18:17:16

我有一些代码将搜索结果导出到CSV文件:

$("#exportButton").click(function () {
    var url = "/Stuff/ExportSearchResults";
    var searchInput = readInput();
    $.post(url, searchInput, function (data) {
        // This is where I'm clueless.
        // I'm getting data back but not sure how to make the
        // browser show a prompt to download the file.
        console.log(data);
    });
});

在服务器端(ASP。. NET MVC 4)有这个:

[HttpPost]
public FileResult ExportSearchResults(SearchInput model)
{
    string csv = GenerateCsv(model);
    return File(new UTF8Encoding().GetBytes(csv), "text/csv", "Export.csv");
}

好的是我在控制台中得到了数据。我只是不确定如何让浏览器显示下载文件的提示。

使用jQuery AJAX调用导出CSV

对于这个问题,我们可以使用https://stackoverflow.com/users/5349021/sreepathy-sp

的注释。

客户端

$("#exportButton").click(function () {
       var url = "/Stuff/ExportSearchResults";
       var searchInput = readInput();
       window.location.href = '/Stuff/ExportSearchResults?searchInput='+searchInput ;
});

服务器端

[HttpGet]
public FileResult ExportSearchResults(string model)
{
    string csv = GenerateCsv(model);
    Stream stream = new MemoryStream(new UTF8Encoding().GetBytes(csv));
    return File(stream , "text/csv", "Export.csv");
}