![](/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.