Web Api 2:具有自定义错误模型的BadRequest

Dav*_*New 7 c# rest asp.net-web-api asp.net-web-api2

BadRequest可用的方法ApiController只接受一个字符串:

// 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);
Run Code Online (Sandbox Code Playgroud)

为什么没有接受自定义错误模型T的重载?

例如,我可能想要返回一个代码以及消息:

{
    message: "Error message",
    code: "1000",
}
Run Code Online (Sandbox Code Playgroud)

我可以做以下但我怀疑必须有一个潜在的原因(可能符合RESTful标准?):

return Content(HttpStatusCode.BadRequest, errorModel);
Run Code Online (Sandbox Code Playgroud)

And*_*aru 9

不确定这是否仍然相关,因为这个问题超过2年......但是,这样做的方法确实在使用

return Content(HttpStatusCode.BadRequest, errorModel);
Run Code Online (Sandbox Code Playgroud)

拥有标准化的错误模型以包含详细信息实际上是一种非常好的做法.另请参见:API最佳实践:响应处理