ActionResult 设置 HTTP StatusCode .NET Core Api

问题描述

我只是尝试从 API 调用发回 404 响应消息,但遇到了一些问题。

我有以下返回 ActionResult 的函数

    private static ActionResult StatusResult(HttpStatusCode statusCode,string reason) => new ContentResult
    {
        StatusCode = (int)statusCode,Content = $"Status Code: {(int)statusCode} - {statusCode} | {reason}",ContentType = "application/json",};

并像这样称呼它:

return StatusResult(HttpStatusCode.NotFound,"ID not found.");

它返回给客户端,但是状态码仍然是 200,而不是 404。有没有简单的方法解决这个问题?

响应示例:

Response Example

解决方法

这可能不适用于所有人,但最后我直接编辑了 HttpContext 对象并将其返回给客户端。

哪个给出了正确的状态代码作为响应。

context.Response.ContentType = "application / json";
context.Response.StatusCode = (int)statuscode;