正在创建并返回FileContentResult,但没有下载任何文件



我正在为一个asp.net核心web应用程序设计一个页面,该应用程序允许用户设计一个对象,并在按下按钮时为其下载json。为了做到这一点,按钮使用jquery和ajax点击以下控制器方法:

// GET: Missions/DownloadMission/5
[HttpGet, ActionName("DownloadMission")]
public FileContentResult DownloadMission(int id)
{
Mission toDownload = db.Missions.Find(id);
string json = JsonConvert.SerializeObject(toDownload);
string fileName = (toDownload.Title + ".txt");
string mimeType = "text/plain";
byte[] bytes = Encoding.ASCII.GetBytes(json);
return new FileContentResult(bytes, mimeType)
{
FileDownloadName = fileName
};
}

ajax请求中的.done(function() {已运行,并且没有任何错误。因此,它似乎正在按预期工作。但是文件不会被下载

我在多个浏览器(Chrome、Firefox、Edge,甚至IE(上测试过这一点,并关闭了所有安全设置和阻止程序。这些变化都没有影响到任何事情,所以我被难住了。

端点上提供的代码是正确的,但是需要在ajax/js端进行处理才能真正下载文件;因为目前它只是回来了,什么都不做。

可以在这里找到多个非常详细的参考:处理从ajax post 下载的文件

相关内容

最新更新