【问题标题】:Equivilent to HttpResponse.StatusDescription in .Net Core to set the status code description相当于.Net Core中的HttpResponse.StatusDescription设置状态码描述
【发布时间】:2020-01-03 20:22:30
【问题描述】:

如何更改 .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 上运行

【问题讨论】:

标签: c# asp.net-core asp.net-core-3.1


【解决方案1】:

这是一种可能的方法:

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);
    }
}

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

context.Result = new CustomResult("Custom Error Message", StatusCodes.Status400BadRequest);  

或在行动本身:

public IActionResult Save()
{
    return new CustomResult("Custom Error Message", StatusCodes.Status400BadRequest);
}

【讨论】:

    【解决方案2】:

    实际上我不确定您是否可以在 .Net Core 3.1 中使用它,但我认为它会起作用:

    return BadRequest(new ProblemDetails {Title = "Custom Error Message"});
    

    注意:我在 .Net Core 2.2 中使用此代码

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-21
      • 1970-01-01
      • 1970-01-01
      • 2014-09-03
      • 1970-01-01
      • 2012-01-14
      • 2017-02-20
      相关资源
      最近更新 更多