private void RespondWithBadRequest(HttpActionContext context) { var response = new ResponseForInvalidRequest(context.ModelState); LogBadRequest("Request pre-condition(s) failed", context, response); // we intentionally don't use context.Request.CreateErrorResponse, so that we can customise the response body. Otherwise it's too limited. context.Response = context.Request.CreateResponse(HttpStatusCode.BadRequest, response); }