簡體   English   中英

ASP.NET Core WebApi 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/plainContentType

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM