我正在使用asp.net核心版本2.1,我已经创建了一个示例API项目,它工作正常,但我无法使用自定义消息修改状态代码,例如:
邮递员:
200好的
期待:
200 Custom_Message
我试过的代码:
[HttpGet]
public IActionResult Get()
{
Response.StatusCode = 200;
Response.HttpContext.Features.Get<IHttpResponseFeature>().ReasonPhrase = "Custom_Message";
return Ok();
}
邮差目前的输出:
我认为你应该创建自定义类:
public class CustomResult : OkResult
{
private readonly string Reason;
public CustomResult(string reason) : base()
{
Reason = reason;
}
public override void ExecuteResult(ActionContext context)
{
if (context == null)
{
throw new ArgumentNullException(nameof(context));
}
context.HttpContext.Response.HttpContext.Features.Get<IHttpResponseFeature>().ReasonPhrase = Reason;
context.HttpContext.Response.StatusCode = StatusCode;
}
}
然后在你的控制器方法中:
[HttpGet]
public IActionResult Get()
{
return new CustomResult("Custom reason phrase");
}