使用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。我在这里做错了什么?


Helenr
浏览 121回答 1
1回答

开满天机

为什么不简单使用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)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript