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

在ASP.NET Core 2中返回带201状态码的PDF文件

当然可以实现这个需求!在ASP.NET Core 2中,你只需要对FileContentResult做一点小调整就能同时返回PDF文件和201 Created状态码,具体做法如下:

解决方案:手动设置FileContentResult的状态码

FileContentResult默认会返回200 OK状态码,但它的StatusCode属性是可修改的,你可以直接创建实例并指定状态码:

public IActionResult YourAction()
{
    // 假设document是你已获取到的PDF字节数组
    byte[] document = GetYourPdfBytes();
    
    var pdfResult = new FileContentResult(document, "application/pdf")
    {
        StatusCode = StatusCodes.Status201Created
    };
    
    return pdfResult;
}

或者更简洁的写法,利用ASP.NET Core的File方法后强转设置状态码:

return (FileContentResult)File(document, "application/pdf")
{
    StatusCode = StatusCodes.Status201Created
};

为什么这个方法可行?

FileContentResult继承自FileResult,而FileResult基类包含StatusCode属性,默认值是200 OK。通过手动将这个属性设置为StatusCodes.Status201Created,你就能让响应同时具备:

  • 正确的application/pdf内容类型
  • 201 Created状态码
  • 原始的PDF字节流作为响应体(不会被序列化为base64 JSON)

这样就完美解决了你之前遇到的两个问题:既不用返回base64格式的JSON,也能拿到期望的201状态码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:02:48