我意识到之前已经问过这个问题的变化。我找到的最佳答案是
File download in Asp.Net MVC 2
但是试图遵循这些指示并没有为我解决问题。
长话短说,文件正在被正确检索,名称,路径和mime类型都是正确的,并且不会抛出任何错误。客户端的javascript也不会抛出任何错误。
获取文件的C#代码如下所示:
[HttpPost]
public FileResult DownloadFile(int fileId)
{
... get the file and file info
return File(fileBytes, fileMimeType, fileName);
}
javascript看起来像这样:
... set up for post here
$.post(settings.actions.downloadFile, {fileId: fileIdVar});
正如我所说的那样,帖子会回来,没有任何反应。
我尝试将帖子更改为get,结果是一样的。
我已经尝试设置一个回调函数,在下载返回时将document.location.href设置为一些随机url,但这只是将我的浏览器带到我指定的页面。根据我提供的链接中的解释,我无法理解
“...使用document.location.href = ...告诉浏览器转到url下载文件。它会看到内容处置标题,并将其显示为下载而不是页面......“
我应该指出我的浏览器。 document.location.href不接受数据,因此我不能单独使用它,并且使用post而不使用document.location.href也不会返回任何内容。
我可能做错了什么?
非常感谢响应者的时间!