ASP.NET Core WebApi HttpResponseMessage创建自定义消息?

时间:2017-02-01 23:52:46

标签: c# rest asp.net-web-api asp.net-core

如何在ASP.NET Core WebApi中创建自定义消息? 例如,我想返回

new HttpResponseMessage()
{
    StatusCode=HttpStatusCode.OK,
    Message="Congratulations !!"
};

new HttpResponseMessage()
{ 
    StatusCode=HttpStatusCode.NotFound,
    Message="Sorry !!"
};

2 个答案:

答案 0 :(得分:7)

这个最简单的方法是使用基类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总是ContentType text/plain

Ok()NotFound()方法返回ObjectResult,它使用格式化程序根据请求的Accept标头中的内容类型序列化字符串。

答案 1 :(得分:1)

为了返回旧版HttpResponseMessage,您需要在.net core中将其转换为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);
    }