ai didi

c# mvc 从 AJAX 调用返回 JSON 或文件

转载 作者:太空狗 更新时间:2023-10-30 00:33:03 24 4
gpt4 key购买 nike

我的 View 中有这样的东西:

        var url = '@Url.Action("DownloadZip", "Program")' + '?programNums=' + selectedRow;

$.ajax({
url: url,
dataType: 'json',
async: false,
success: function (data) {
if (data != "Successful") {
alert(data);
}
}
});

如果出现错误, Controller 可以返回文件或返回 JSON 结果。无法让他们一起工作。

这是它的样子:

    public ActionResult DownloadZip(string programNums)
{

if(string.IsNullOrEmpty(programNums))
{
return Json("Error, blank info sent.", JsonRequestBehavior.AllowGet);
}

var memoryStream = new MemoryStream();

using (var zip = new ZipFile())
{
zip.AddFile("C:\\sitemap.txt");
zip.Save(memoryStream);
}

memoryStream.Seek(0, 0);
return File(memoryStream, "application/octet-stream", "archive.zip");

}

我看到的是 ajax 调用需要返回一个 JSON 值。因为在我的例子中,它返回一个文件,所以它不能工作。无论如何处理我正在做的事情,它可以从 ajax 调用返回 JSON 或文件。

最佳答案

我认为您将在这个实现中遇到很多问题。您实际上无法通过 AJAX 上传或下载文件。请参阅下面的链接。

How to download file from server using jQuery AJAX and Spring MVC 3

您应该使用上面粘贴的问题中共享的两个实现之一。如果使用 IFRAME 方法,则可以使用 jQuery 检查文档何时完成以及是否成功。

编辑:您可以抛出一个服务器异常 (500)。如何处理来自 IFRAME 的 500 取决于您。

关于c# mvc 从 AJAX 调用返回 JSON 或文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13941358/

24 4 0
文章推荐: c# - 从 UI .continuewith 任务安排任务的问题
文章推荐: python - 为什么我们应该使用 Exception 作为父类(super class),为什么不使用 BaseException
文章推荐: python - 如何在 Google App Engine 中获取当前英国时间
文章推荐: c# - 单击时更改按钮颜色(多次单击/颜色)
太空狗
个人简介

我是一名优秀的程序员,十分优秀!

滴滴打车优惠券免费领取
滴滴打车优惠券
全站热门文章
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com