ASP NET Core Minimal API 总是返回 200 而不是指定的 204
Posted
技术标签:
【中文标题】ASP NET Core Minimal API 总是返回 200 而不是指定的 204【英文标题】:ASP NET Core Minimal API always returns 200 instead of specified 204 【发布时间】:2021-09-17 07:31:55 【问题描述】:即使我说返回 204 (NoContent),它也会返回 200。为什么?
app.MapGet("/api/alive", (context) => Task.FromResult(new StatusCodeResult(204)));
浏览器中的状态码是200
【问题讨论】:
您能否显示更多您的代码,以便我们了解您是如何收到此回复的。通常我希望看到Return NoContent();
使用 Results.NoContent()、new NoContentResult() 或 new StatusCodeResult(204) 没有区别
你检查documentation了吗?你知道第二个参数的签名(RequestDelegate
) 吗?你从哪里得知它有返回类型?
将类型更改为 RequestDelegate 成功了
不要将答案编辑到您的问题中。我已将您的问题回滚到原始版本。
【参考方案1】:
解决方案是稍微更改签名:
app.MapGet("/api/alive", () => Results.NoContent());
(context) 单独不起作用, 编辑:以及(RequestDelegate 上下文)不起作用。
app.MapGet("/api/alive", (context) => Results.NoContent());
app.MapGet("/api/alive", (RequestDelegate context) => Results.NoContent());
【讨论】:
有人知道为什么 RequestDelegate 不起作用吗?以上是关于ASP NET Core Minimal API 总是返回 200 而不是指定的 204的主要内容,如果未能解决你的问题,请参考以下文章
从 MVC 到使用 ASP.NET Core 6.0 的Minimal API
ASP NET Core Minimal API 总是返回 200 而不是指定的 204
ChatGPT Plugin 插件开发:基于 ASP.NET Core Minimal API
使用 ASP.NET Core 6 Minimal API 在 Azure 中停止 Web 应用程序时未调用 BackgroundService StopAsync
创建API服务最小只要4行代码!!!尝新体验ASP.NET Core 6预览版本中的最小Web API(minimal APIS)新特性