我想创建将从存储过程中生成excel表的服务。我希望直接https://www.talkingdotnet.com/import-export-excel-asp-net-core-2-razor-pages/直接在剃须刀页面上工作,但是我需要创建服务(在我的业务层中并将其提供给控制器)。
我遇到的问题是,在本教程中它是从函数中返回IActionResult
:
public async Task<IActionResult> OnPostExport()
{
//logic
return File(memory, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", sFileName);
}
有关模式的详细信息,请参见https://www.talkingdotnet.com/import-export-excel-asp-net-core-2-razor-pages/。
我试图编写以下代码:
public class ExportService
{
private IHostingEnvironment _hostingEnvironment;
public ExportService(IHostingEnvironment hostingEnvironment)
{
_hostingEnvironment = hostingEnvironment;
}
public async Task OnPostExport(int year)
{
//logic
return File(memory, "application/vnd.openxmlformats-
officedocument.spreadsheetml.sheet", sFileName);
}
它不起作用,因为“返回文件”-PageModel的功能在教程中如何工作。我想从服务中将文件返回给控制器。我应该从OnPostExport
函数返回哪种类型?我将非常感谢我需要做的任何信息和想法。
答案 0 :(得分:1)
对于owner
,它是name
中的基本方法,它将返回File
。如果您更喜欢使用ControllerBase
,则可以实现FileResult variants中的代码。
IMO,我建议您从FileContentResult
返回File
,然后像
byte[]
public async Task OnPostExport(int year)