The BadRequest method available on ApiController only accepts a string:
// Summary:
//     Creates an System.Web.Http.Results.ErrorMessageResult (400 Bad Request) with
//     the specified error message.
//
// Parameters:
//   message:
//     The user-visible error message.
//
// Returns:
//     An System.Web.Http.Results.InvalidModelStateResult with the specified model
//     state.
protected internal virtual BadRequestErrorMessageResult BadRequest(string message);
Why is there no overload which accepts an custom error model T?
For example, I might want to return a code along with the message:
{
    message: "Error message",
    code: "1000",
}
I could just do the following but I suspect there must be an underlying reason (perhaps in accordance with RESTful standards?):
return Content(HttpStatusCode.BadRequest, errorModel);
 
    