You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core Web API如何返回带状态码的CSV文件?

在.NET Core 6 WebAPI中返回CSV文件同时指定状态码

方法1:构造FileContentResult并设置状态码

直接创建FileContentResult实例,手动指定状态码、CSV数据、内容类型和文件名,这种方式最直观:

[HttpPost]
[Route("Search")]
public async Task<IActionResult> Search(IFormFile file)
{
    // 修正原代码中GetList的参数问题,传入实际业务所需的id值
    StringBuilder sb = await GetList(/* 此处传入正确的id参数 */);
    byte[] csvBytes = Encoding.ASCII.GetBytes(sb.ToString());
    
    // 构造结果并指定状态码,可根据业务场景替换为201/400等合规HTTP状态码
    var csvResult = new FileContentResult(csvBytes, "text/csv")
    {
        FileDownloadName = fileName,
        StatusCode = StatusCodes.Status200OK
    };

    return csvResult;
}

方法2:用StatusCode包裹File结果

如果想简化代码,可以用StatusCode方法直接包裹原有的File返回结果,同时指定状态码:

[HttpPost]
[Route("Search")]
public async Task<IActionResult> Search(IFormFile file)
{
    StringBuilder sb = await GetList(/* 此处传入正确的id参数 */);
    byte[] csvBytes = Encoding.ASCII.GetBytes(sb.ToString());
    
    // 第一个参数为目标状态码,第二个参数为返回的CSV文件结果
    return StatusCode(StatusCodes.Status200OK, 
        File(csvBytes, "text/csv", fileName));
}

注意事项

  • 状态码需遵循HTTP规范:成功场景用200 OK/201 Created,异常场景用4xx(如400 Bad Request)或5xx(如500 Internal Server Error)
  • 原代码中GetList(int id)的参数存在语法问题,需传入实际业务逻辑中获取到的合法id值(比如从CSV文件解析、路由参数或请求参数中获取)

内容的提问来源于stack exchange,提问作者Ullan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 20:31:04