Я пытаюсь реализовать ссылку на скачивание файла для электронной таблицы Open XML Excel в MVC 2. Если я пишу напрямую в ответ, он работает следующим образом ...
var data = MooseMartAdoManager.ExecuteSet("Report.StagAllCasesFullDetail");
var str = ExcelExportManager.GenerateSpreadsheet(data) as MemoryStream;
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader(
"content-disposition",
"attachment;filename=StagFullDetail" + DateTime.Now.ToString("yyyy-MM-dd-hh-mm-ss") + ".xlsx");
str.WriteTo(Response.OutputStream);
Но, учитывая, что я потратил время на то, чтобы абстрагировать всю логику о том, как собираются данные и создается отчет для повторного использования кода и IOC, было бы неплохо понять, почему эта работа не работает ...
public FileStreamResult GetExcelDetailExport()
{
var data = MooseMartAdoManager.ExecuteSet("Report.StagAllCasesFullDetail");
var file = ExcelExportManager.GenerateSpreadsheet(data);
return File(file, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
"StagFullDetail" + DateTime.Now.ToString("yyyy-MM-dd-hh-mm-ss") + ".xlsx");
}
Все, что я получаю, это файл нулевого байта в формате txt.
Так, каков "правильный" способ MVC справиться с этим?