gpt4 book ai didi

c# - 在JsonResult中返回文件还是在ActionResult中返回Json数据?

转载 作者:太空宇宙 更新时间:2023-11-03 11:24:45 24 4
gpt4 key购买 nike

在后端使用 MVC3 .net Controller ,我正在执行 HttpPost 以通过 HttpContext 提交文件。

当服务器读取文件时,上传结果会返回一个字符串列表。

到目前为止,我已经能够让两个场景正常工作:

1) 将字符串列表作为单个制表符分隔的字符串作为 JsonResult 返回

string tabSeparatedMessages = "";

foreach (string message in messageLog)
{
tabSeparatedMessages = tabSeparatedMessages + message;

if (message != messageLog[messageLog.Count - 1])
{
tabSeparatedMessages = tabSeparatedMessages + '\n';
}
}
return this.Json(new
{
success = true,
total = messageLog.Count,
data = tabSeparatedMessages
}, "text/html", JsonRequestBehavior.AllowGet);

2) 将文本文件中的字符串列表作为 ActionResult 返回

string fileName = System.IO.Path.GetTempPath() + Guid.NewGuid().ToString() + ".txt";

using (StreamWriter writer = new StreamWriter(fileName))
{
foreach (string message in messageLog)
{
writer.WriteLine(message);
}
}

return File(fileName, "text/plain", "UPLOAD_RESULTS.txt");

我的问题是我需要这些方法中的每一种方法的元素,但很难将两者结合起来。我想要 JsonResult 以便我可以返回一个 bool 值“成功”以在客户端上 Release模式等待消息。我想要 ActionResult,这样客户端就可以简单地下载一个文件,而不是将字符串列表解析到 GUI 组件中。

有没有办法返回一个文本文件作为 JsonResult 的一部分下载或返回带有 ActionResult 的 Json 数据?

感谢阅读

最佳答案

不幸的是,您一次只能返回一种结果类型。如果我是你,我真的需要将 upload_results.txt 下载到客户端,我的 json 结果中会有一个参数,它是对服务器上文件的引用。

所以客户端首先得到上传成功的响应,然后你隐藏模式对话框,然后你用javascript再次请求upload_results.txt文件。

关于c# - 在JsonResult中返回文件还是在ActionResult中返回Json数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9771066/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com