jquery - 如何在asp.net MVC 4中通过ajax请求下载文件

标签 jquery json asp.net-mvc-4 asp.net-ajax

下面是我的代码:

ActionResult DownloadAttachment(student st)
{          
    var file = db.EmailAttachmentReceived.FirstOrDefault(x => x.LisaId == st.Lisaid);

    byte[] fileBytes = System.IO.File.ReadAllBytes(file.Filepath);
    return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, file.Filename);                 
}

这是我正在使用的脚本

$(function () {
    $("#DownloadAttachment").click(function () {
        $.ajax({
            url: '@Url.Action("DownloadAttachment", "PostDetail")',
            contentType: 'application/json; charset=utf-8',
            datatype: 'json',
            type: "GET",
            success: function () {
                alert("sucess");
            }
        });    
    });
});      

如何返回上述代码的下载文件?

最佳答案

我认为不需要 Ajax 调用,您只需使用超链接即可完成,如下例所示。

查看代码

<a href="@Url.Action("DownloadAttachment", "PostDetail", new { studentId = 123 })">Download Form</a>

Controller 方法

public ActionResult DownloadAttachment(int studentId)
{          
    // Find user by passed id
    var file = db.EmailAttachmentReceived.FirstOrDefault(x => x.LisaId == studentId);    
    byte[] fileBytes = System.IO.File.ReadAllBytes(file.Filepath);    
    return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, file.Filename);                           
}

关于jquery - 如何在asp.net MVC 4中通过ajax请求下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30704078/

相关文章:

javascript - 将对象字符串转换为 JSON

asp.net - 如何在asp.net 3.5中使用Json?

javascript - .NET MVC 本地化 (JavaScript)

javascript - 在多重选择器中使用变量

javascript - 完整的 bootstrap markdown 高度

java - jquery ajax调用servlet方法并返回json数据

c# - 如何确定 HttpClient.PostAsJsonAsync 调用中出现 500 错误的问题是什么?

asp.net-mvc-3 - 在 MVC3 中将 ListBox 与模型绑定(bind)

javascript - 通过重命名 src 属性刷新 javascript

jquery - CSS3 过渡问题