相当于.NET Core中的HttpResponse.StatusDescription设置状态码描述

web*_*ake 7 c# asp.net-core asp.net-core-3.1

如何更改 .NET Core 应用程序的状态描述?我正在寻找相当于 .NET 4.8 HttpResponse.StatusDescription的东西。

代替

HTTP/1.1 400 Bad Request

我想将“错误请求”更改为我的应用程序中的某些内容

HTTP/1.1 400 Custom Error Message

我知道还有其他发送错误文本的方法。但是,我需要支持仅从状态代码文本字段读取错误消息的旧应用程序。

如果相关,它将使用 .NET Core 3.1 在 IIS 上运行。

Rom*_*lko 0

这是一种可能的方法:

public class CustomResult : IActionResult
{
    private readonly string _errorMessage;
    private readonly int _statusCode;

    public CustomResult(string errorMessage, int statusCode)
    {
        _errorMessage = errorMessage;
        _statusCode = statusCode;
    }

    public async Task ExecuteResultAsync(ActionContext context)
    {
        var objectResult = new ObjectResult(_errorMessage)
        {
            StatusCode = _statusCode
        };

        await objectResult.ExecuteResultAsync(context);
    }
}
Run Code Online (Sandbox Code Playgroud)

以及动作过滤器中的用法:

context.Result = new CustomResult("Custom Error Message", StatusCodes.Status400BadRequest);  
Run Code Online (Sandbox Code Playgroud)

或在行动本身:

public IActionResult Save()
{
    return new CustomResult("Custom Error Message", StatusCodes.Status400BadRequest);
}
Run Code Online (Sandbox Code Playgroud)