【发布时间】:2015-05-03 09:31:00
【问题描述】:
我正在尝试使用 jquery 的 $.post 方法下载一个 excel CSV 文件,但我无法让它工作。
我可以看到服务器正在创建文件并将其发送回客户端,但之后我无法实际下载文件。
我的 jquery post 函数如下所示:
$.post("/GenerateFile", { id: id, startDate: startDate, endDate: endDate }, function (data) {
window.location = data;
}).fail(function (XMLHttpRequest, textStatus, errorThrown) {
});
我的服务器端函数如下所示:
public async Task<ActionResult> GenerateFile(string id, string startDate, string endDate)
{
try
{
// My logic to create the file here, this is of type Task<MemoryStream>
var outputFile = await CreateFile(sDate, eDate);
return File(outputFile, "text/comma-separated-values", "Download.csv");
}
catch (Exception e)
{
return new HttpStatusCodeResult(400, e.Message);
}
}
当此数据返回客户端时,它会尝试使用 CSV 文件中的数据(如 URL 链接中所示)导航到新页面并显示消息
Bad Request - Invalid URL
HTTP Error 400. The request URL is invalid.
文件生成本身没有问题,因为我可以将文件本地创建到磁盘上,只是在我尝试使用浏览器下载它时。
我已经看到显示此方法有效的指南,但我似乎缺少一些东西,导致下载无法正常工作。
【问题讨论】:
标签: jquery asp.net-mvc