javascript - 使用ajax调用MVC从数据库下载文件
问题描述
我正在尝试通过 MVC 中的 ajax 调用来实现文件下载功能。调用控制器方法后,我总是有一个“parseerror”,有人能解释一下为什么吗?
我的阿贾克斯:
tab.on("click", ".FileDownload", function (e) {
//$('#uploadStatus').html("ok");
var tr = $(this).closest("tr");
var id = tr.data("id");
$.ajax({
type: "POST",
url: "/File/FileDownload",
//contentType: false,
//processData: false,
//dataType: "json",
data: { fileId: id },
success: function (data) {
$('#uploadStatus').html("ok");
},
error: function (err) {
alert(err.statusText);
}
});
});
和控制器:
[HttpPost]
public FileResult FileDownload(int? fileId)
{
FileDBEntities db = new FileDBEntities();
tblFile file = db.tblFiles.ToList().Find(p => p.id == fileId.Value);
return File(file.Data, file.ContentType, file.Name);
}
在剃须刀中使用简单的下载链接,它可以工作,但不能使用 ajax。我在这里做错了什么?
解决方案
为什么不简单使用
tab.on("click", ".FileDownload", function (e) {
//$('#uploadStatus').html("ok");
var tr = $(this).closest("tr");
var id = tr.data("id");
window.location = window.location.origin + '/File/FileDownload?fileId=' + id;
});
[HttpGet]
public FileResult FileDownload(int? fileId)
推荐阅读
- python - 如何解决检测到的循环引用
- python - 为使用 pygame 模块制作的 python 游戏文件创建可执行安装程序时出错
- javascript - 数据表中上传的行不受隐藏列的影响
- javascript - 在 PHP 和 JS 中查找字数的差异问题
- ruby-on-rails - Active Admin:如何在输入 active_admin rails 时应用搜索过滤器
- swift - 如何将 POST 值发送到 API?[迅速]
- go - GO 获取 K8S api 服务器健康状态
- python - 将 python 函数转换为 pyspark lambda 函数
- arrays - 如何将所有素数放入C中的数组中
- tensorflow - 如何在 tf.keras 中修复这个 AssertionError?