【发布时间】:2021-08-22 17:52:17
【问题描述】:
我正在为一个 asp.net 核心网络应用程序设计一个页面,该应用程序允许用户设计一个对象,并在按下按钮时为其下载 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)上对此进行了测试,并关闭了所有安全设置和阻止程序。这些变化都没有产生任何影响,所以我很难过。
【问题讨论】:
-
您是否查看了浏览器调试控制台以查看实际返回的内容?
-
我在 chrome 控制台中没有看到任何返回
-
如果通过下载,您的意思是保存到您的计算机,ajax 不会这样做。见stackoverflow.com/a/23797348/1353011
-
@Musa 这就是答案,我错过了 js 方面的正确处理。谢谢
标签: c# ajax file asp.net-core download