我想創建將從我的存儲過程生成 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函數返回什么類型?對于我需要做的任何信息和想法,我將不勝感激。
1 回答
呼啦一陣風
TA貢獻1802條經驗 獲得超6個贊
對于File,它是ControllerBase將返回的基本方法FileContentResult。如果您更喜歡使用File,您可以實現FileResult 變體中的代碼。
IMO,我建議你byte[]從那里回來public async Task OnPostExport(int year),然后構建File像這樣 的回應
public async Task<byte[]> OnPostExport(int year)
{
//logic
return filebytearray;
}
var dt = await _exportService.OnPostExport(1);
return File(dt, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", sFileName);
- 1 回答
- 0 關注
- 218 瀏覽
添加回答
舉報
0/150
提交
取消
