Javascript 使用ajax调用MVC从DB下载文件
我试图通过MVC中的ajax调用实现文件下载功能。 在调用控制器方法之后,我总是有一个“parseerror”,有人能解释一下原因吗 我的ajax:Javascript 使用ajax调用MVC从DB下载文件,javascript,c#,ajax,asp.net-mvc,json.net,Javascript,C#,Ajax,Asp.net Mvc,Json.net,我试图通过MVC中的ajax调用实现文件下载功能。 在调用控制器方法之后,我总是有一个“parseerror”,有人能解释一下原因吗 我的ajax: tab.on("click", ".FileDownload", function (e) { //$('#uploadStatus').html("ok"); var tr = $(this).closest("tr"); var id =
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);
}
使用razor中的简单下载链接,它可以工作,但不使用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)
谢谢,这比我想象的要容易