【问题标题】:Download file from DB with ajax call MVC使用 ajax 调用 MVC 从数据库下载文件
【发布时间】:2020-08-06 16:26:22
【问题描述】:

我正在尝试通过 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。 我在这里做错了什么?

【问题讨论】:

    标签: javascript c# ajax asp.net-mvc json.net


    【解决方案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)
    

    【讨论】:

    • 谢谢,这比我想象的要容易 XD
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-29
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多