文件未在Ajax调用的Asp.Net MVC中下载

时间:2019-09-19 06:27:09

标签: jquery ajax asp.net-mvc

我需要在Asp.Net MVC应用程序中下载一个文件,为此我尝试了很多方法,例如返回File,FileResult,FileStreamResult,但这些方法均无效。我也阅读了数百篇文章,但是都没有纠正我的问题。我正在通过jquery ajax调用来调用我的控制器函数。成功后,我会收到警报消息,但文件未下载,也未显示异常或错误。

这是我的控制器方法:

public FileResult Download()
        {
            return File("C:/Users/Administrator/Documents/approve.png", "image/png");
        }

这是我的ajax调用:

$.ajax({
        type: "GET",
        url: '/Home/Download',        
        success:(function(response){
            alert("Downloaded");
        }),
        error: (function () {
            alert("Not Downloaded");
        })
    });

请记住,我也尝试了其他文件下载方法。 我期望的是系统将下载文件,但是仅提示“已下载”消息,没有任何文件下载。

1 个答案:

答案 0 :(得分:1)

在控制器中,

public FileResult Download()
            {
                return Json("C:/Users/Administrator/Documents/approve.png");
            }

在ajax中

$.ajax({
        type: "GET",
        url: '/Home/Download',
         dataType: "json",
        success:(function(response){
            window.open(response, '_blank');
            alert("Downloaded");
        }),
        error: (function () {
            alert("Not Downloaded");
        })
    });