Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# HTTPResponse响应是否存在于.NETCore3.1中_C#_Asp.net Core_Blazor - Fatal编程技术网

C# HTTPResponse响应是否存在于.NETCore3.1中

C# HTTPResponse响应是否存在于.NETCore3.1中,c#,asp.net-core,blazor,C#,Asp.net Core,Blazor,我正在尝试将数据从asp.net核心Web应用程序(Blazor)导出到excel文件。Excel文件必须显示在浏览器中,由用户下载 根据我使用的所有示例,响应: using System; using System.IO; using ClosedXML.Excel; using System.Data; using System.Web; using Microsoft.AspNetCore.Http; namespace Sxxx { public class Exporter

我正在尝试将数据从asp.net核心Web应用程序(Blazor)导出到excel文件。Excel文件必须显示在浏览器中,由用户下载

根据我使用的所有示例,响应:

using System;
using System.IO;
using ClosedXML.Excel;
using System.Data;
using System.Web;
using Microsoft.AspNetCore.Http;

namespace Sxxx
{
    public class Exporter
    {
        public void Export()
        {
            using (IXLWorkbook wb = new XLWorkbook())
            {
                IXLWorksheet ws = wb.Worksheets.Add("Sample Sheet");

                ws.Cell(1, 1).Value = "Hello World!";

                Response.Clear();
                Response.Buffer = true;
                Response.Charset = "";
                Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
                Response.AddHeader("content-disposition", "attachment;filename=SqlExport.xlsx");
                using (MemoryStream MyMemoryStream = new MemoryStream())
                {
                    wb.SaveAs(MyMemoryStream);
                    MyMemoryStream.WriteTo(Response.OutputStream);
                    Response.Flush();
                    Response.End();
                }
            }
                       
        }
    }
然而,这一反应并未得到认可。VS2019显示缺少的程序集是“Ubiety.Dns.Core”,但这似乎不正确

在docs.microsoft.com中,HTTPresponse仅作为framework4.8的一部分出现,因此我的问题是:我可以在这里使用Response,还是我需要为核心3.1项目提供其他功能


提前感谢

我确实按照马可和诺亚的建议创建了一个控制器,非常感谢。我确实学到了很多。。。响应继承自ControllerBase。web上的大多数示例都是针对.NETFramework4.8的,因此在Core3.1中这样做有点令人费解,但这里就是。改进建议更受欢迎

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System.IO;
using ClosedXML.Excel;


namespace Sxxx.Controllers
{
    [Route("api/[controller]")]
    [ApiController]
    public class DownLoadController : ControllerBase
    {
        private readonly IWebHostEnvironment environment;
        public DownLoadController(IWebHostEnvironment environment)
        {
            this.environment = environment;
        }

        [HttpGet("[action]")]
        public async Task DownLoadFile()    
        {
            IXLWorkbook wb = new XLWorkbook();
            IXLWorksheet ws = wb.Worksheets.Add("Sample Sheet");
            ws.Cell(1, 1).Value = "Hello World!";
            MemoryStream ms = new MemoryStream();
            wb.SaveAs(ms);
            byte[] result = ms.ToArray();

            Response.Clear();
            Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
            Response.Headers.Add("Content-Disposition", "attachment; filename=somefile.xlsx");
            
            await Response.Body.WriteAsync(result);
            await Response.StartAsync();
                  
        }
    }
}

什么是
响应
?据我所知,在代码中的任何地方都没有实例化它。您是否尝试创建
HttpResponseMessage
?在这样的.NET项目中,您根本不会在任何地方免费获得
响应!您可能在继承自
Controller
的类中获得它(不确定在Core中是否正确)。这是否回答了您的问题?请提供可复制的最小值example@ADBF您始终可以创建一个控制器,返回一个FileResult,并以这种方式进行求解。