c# - 等效于 .Net Core 中的 HttpResponse.StatusDescription 设置状态码描述
问题描述
如何更改 .Net Core 应用程序的状态描述。我正在寻找与 .Net 4.8 HttpResponse.StatusDescription等效的东西。
代替
HTTP/1.1 400 Bad Request
我想将 Bad Request 更改为我的应用程序中的某些内容
HTTP/1.1 400 Custom Error Message
我知道还有其他发送错误文本的方法,但是我需要支持仅从状态代码文本字段中读取错误消息的遗留应用程序。
如果相关,这将使用 .net core 3.1 在 IIS 上运行
解决方案
这是一种可能的方法:
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);
}
推荐阅读
- javascript - 无法获取 DOM 元素样式
- sql-server - 存储在 SQL Server DB 中的 DateTime 不考虑夏令时。当我把它拉出来时,我该如何解决这个问题?
- javascript - Javascript For不完成数组循环
- sql - 一个表中的值作为 INSERT 语句中的 DateAdd 间隔到另一个表
- sql - 使用另一个 Access 数据库中的字段更新查询
- mysql - Using SQL Aliases on a sample database (world) does return 0
- python - 算法设计
- excel - Workbook.RefreshAll 是否刷新数据透视表或数据透视缓存?
- angular - 在返回 observable 的函数中等待订阅结果
- hibernate - @javax.persistance.Convert 在@javax.persistance.Id 上