![](/img/trans.png)
[英]ASP.Net WebAPI: How to use IHttpActionResult instead of HttpResponseMessage
[英]ASP.NET Core WebApi HttpResponseMessage create custom message?
如何在 ASP.NET Core WebApi 中创建自定义消息? 例如我想返回
new HttpResponseMessage()
{
StatusCode=HttpStatusCode.OK,
Message="Congratulations !!"
};
new HttpResponseMessage()
{
StatusCode=HttpStatusCode.NotFound,
Message="Sorry !!"
};
这个最简单的方法是使用基类Controller类的助手。
public ActionResult ExampleNotFound()
{
return NotFound("Sorry !!");
}
public ActionResult ExampleOk()
{
return Ok("Congratulations !!");
}
或者,您可以返回一个新的ContentResult
并设置它的状态代码。
return new ContentResult
{
Content = "Congratulations !!",
ContentType = "text/plain",
StatusCode = 200
};
这两种方法略有不同, ContentResult
将始终具有text/plain
的ContentType
Ok()
和NotFound()
方法返回一个ObjectResult
,它使用格式化程序根据请求的Accept标头中的内容类型序列化字符串。
为了返回遗留的HttpResponseMessage
,您需要将其转换为.net核心中的ResponseMessageResult
。 以下是一个例子。
public async Task<IActionResult> Get(Guid id)
{
var responseMessage = HttpContext.GetHttpRequestMessage().CreateResponse(HttpStatusCode.OK,
new YourObject()
{
Id = Id,
Name = Name
});
return new ResponseMessageResult(responseMessage);
}
您可以使用 StatusCode 代替 CreateResponse。 StatusCode 位于命名空间Microsoft.AspNetCore.Mvc 中。 public virtual ObjectResult StatusCode([ActionResultStatusCode] int statusCode, [ActionResultObjectValue] 对象值) ; 下面是 Synatax。 return StatusCode(Convert.ToInt32(returnstatus.StatusCode), senderResponse);
方法的返回类型将为 IActionResult
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.