Javascript 使用ajax调用MVC从DB下载文件

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 =

我试图通过MVC中的ajax调用实现文件下载功能。 在调用控制器方法之后,我总是有一个“parseerror”,有人能解释一下原因吗

我的ajax:

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)

谢谢,这比我想象的要容易