首页 > 解决方案 > 文件未在 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");
        })
    });

请记住,我也尝试过其他文件下载方法。我所期望的是系统将下载文件,但只是警告消息“已下载”,没有任何文件下载。

标签: jqueryajaxasp.net-mvc

解决方案


在控制器中,

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

在阿贾克斯

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

推荐阅读