ASP.NET Core WebApi HttpResponseMessage create custom message?
32,438
Solution 1
This simplest method is to use the helpers from the base Controller class.
public ActionResult ExampleNotFound()
{
return NotFound("Sorry !!");
}
public ActionResult ExampleOk()
{
return Ok("Congratulations !!");
}
Alternatively you can return a new ContentResult
and set it's status code.
return new ContentResult
{
Content = "Congratulations !!",
ContentType = "text/plain",
StatusCode = 200
};
These two methods are slightly different, the ContentResult
will always have a ContentType
of text/plain
The Ok()
and NotFound()
methods return an ObjectResult
which uses a formatter to serialize your string according to the content types in the Accept header from the request.
Solution 2
In order to return legacy HttpResponseMessage
, you need to convert it to ResponseMessageResult
in .net core. The following is an example.
public async Task<IActionResult> Get(Guid id)
{
var responseMessage = HttpContext.GetHttpRequestMessage().CreateResponse(HttpStatusCode.OK,
new YourObject()
{
Id = Id,
Name = Name
});
return new ResponseMessageResult(responseMessage);
}
Author by
jump4791
Updated on July 09, 2022Comments
-
jump4791 almost 2 years
How can I create custom message in ASP.NET Core WebApi ? For example I want to return
new HttpResponseMessage() { StatusCode=HttpStatusCode.OK, Message="Congratulations !!" }; new HttpResponseMessage() { StatusCode=HttpStatusCode.NotFound, Message="Sorry !!" };
-
jersoft almost 7 yearsHi believe his asking for HttpResponseMessage which is very different from ActionResult, ActionResult is for MVC apps while the other is for Web API.
-
Jared Kells almost 7 years@jersoft MVC and WebAPI are merged in ASP.Net core.