Используя контроллер 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, чтобы клиент мог просто загрузить файл, а не анализировать список строк в компонентах графического интерфейса.
Есть ли способ вернуть текстовый файл для загрузки как часть JsonResult или вернуть данные Json с помощью ActionResult?
Спасибо за чтение