У меня есть этот метод, который возвращает jsonresult, созданный из модели.Вместо того, чтобы возвращать json-файл, я хочу вернуть его в виде zip-файла.Как бы я это сделал?Я использовал zipFile, и он не работает для меня: это мой оригинальный код:
[System.Web.Http.HttpGet]
[System.Web.Http.Route("getData")]
[APIAuthenticate(Tool = "myData", Action = "Export")]
public JsonResult<Models.Gtri.userData> GetALLUserData(int pomYear = 21)
{
Func<Dualie, Models.Gtri.Investments> Convert2Flint = (dualie) => IssueRepository.ConvertToFlintModel(dualie);
using (REALM_Entities db = new REALM_Entities())
{
List<Dualie> userToExport= db.Dualie.Where(dualie => dualie.Issue_Status.ID != 0)
.ToList();
foreach (var dualie in dualiesToExport)
{
dualie.FundingLine_Details = dualie.FundingLine_Details.Where(fd => !fd.IsArchived).ToList();
}
Models.Gtri.FlintModel model = new Models.Gtri.FlintModel()
{
CreationDate = DateTime.UtcNow.ToString("o"),
SchemaVersion = "2",
PomYear = $"20{pomYear.ToString()}",
Investments = dualiesToExport.Select(d => Convert2Flint(d)).ToList()
};
return Json(model);
}
}
Я пытался использовать это в моем коде:
var jsonString = Json(model).ToString();
var bytes = Encoding.UTF8.GetBytes(nostring.ToString());
var ms = new MemoryStream();
using (ZipFile zipFile = new ZipFile())
{
zipFile.Name = "test.zip";
zipFile.AddEntry(zipFile.Name, bytes);
zipFile.Save(ms);
}
return Ok (ms.ToArray ());}
но все равно не работает.Я получаю сжатый JSON, но не почтовый индекс.какой другой подход я могу использовать?