【发布时间】:2012-03-19 13:27:39
【问题描述】:
在后端使用 MVC3 .net 控制器,我正在执行 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 以便我可以返回一个布尔“成功”值以在客户端上释放模态等待消息。我想要 ActionResult 以便客户端可以简单地下载文件,而不是将字符串列表解析到 GUI 组件中。
有没有办法返回一个文本文件作为 JsonResult 的一部分下载或返回带有 ActionResult 的 Json 数据?
感谢您的阅读
【问题讨论】:
标签: c# .net json http-post jsonresult