我在 Controller 中有一个方法可以返回 FileResult
:
public FileResult DownloadRequestsAsCsvFile()
{
var contentType = "text/csv";
var content = CreateCsvFileOfPendingLeadRequests();
var bytes = Encoding.UTF8.GetBytes(content);
var result = new FileContentResult(bytes, contentType);
string n = string.Format("LeadRequests-{0:yyyy-MM-dd_hh-mm-ss-tt}.csv", DateTime.Now);
result.FileDownloadName = n;
return result
}
我有一个 knockout 函数来调用 Controller 方法来下载文件,该方法被调用并完成,但文件不是使用浏览器下载的。如何让浏览器下载文件?
self.getCsvFileOfRequests = function () {
$.get('../Home/DownloadRequestsAsCsvFile', function (csv) {
}).done(function() {
toastr.success("File downloaded successfully.")
}).error(function() {
toastr.error("There was a problem downloading the file.");
});
}
最佳答案
您无法通过这种方式真正使用 jQuery 下载文件。你要做的就是将一个隐藏的 iframe 注入(inject)到你的 DOM 中,并将其源 url 设置为你想要下载的文件的 url。请参阅this answer了解更多信息。
关于jquery - 如何使用jquery和knockout从MVC Controller 下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29809789/