У меня есть список объектов, которые я хочу загрузить в виде csv-файла через Web Api.Однако, когда я проверяю это с Swagger, я не получаю загрузку CSV.Что я делаю неправильно?DailyReportContent содержит 2 объекта.
Это мой код до сих пор:
public IActionResult GetDailyReport(DateTime invoiceDate)
{
var dailyReportContent = new List<DailyReportModel>().....
// create csv file
var engine = new FileHelperEngine<DailyReportModel>
{
HeaderText = "headers.."
};
using (var stream = new MemoryStream())
using (var streamWriter = new StreamWriter(stream))
{
engine.WriteStream(streamWriter, dailyReportContent);
var result = new HttpResponseMessage(HttpStatusCode.OK);
result.Content = new StreamContent(stream);
result.Content.Headers.ContentType = new MediaTypeHeaderValue("text/csv");
result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") { FileName = "DailyReports.csv" };
return Ok(result);
}
}
И это ответ в Swagger:
{
"version": {
"major": 1,
"minor": 1,
"build": -1,
"revision": -1,
"majorRevision": -1,
"minorRevision": -1
},
"content": {
"headers": [
{
"key": "Content-Type",
"value": [
"text/csv"
]
},
{
"key": "Content-Disposition",
"value": [
"attachment; filename=DailyReports.csv"
]
}
]
},
"statusCode": 200,
"reasonPhrase": "OK",
"headers": [],
"requestMessage": null,
"isSuccessStatusCode": true
}
РЕДАКТИРОВАТЬ: Даже если я добавлюthis:
stream.Flush();
streamWriter.Flush();
var reader = new StreamReader(stream);
var readResult = reader.ReadToEnd();
readResult пуст.Итак, я думаю, что что-то идет не так при записи потока?