ActionResult 设置 HTTP StatusCode .NET Core Api

ActionResult to set HTTP StatusCode .NET Core Api

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

我有以下函数,其中 returns 一个 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.");

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

响应示例:

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

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

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