【发布时间】:2019-02-19 08:04:34
【问题描述】:
我想返回一个包含错误详细信息的数据对象,带有 BadRequestErrorMessageResult 或 BadRequestErrorMessageResult 对象,如下所示:
public IHttpActionResult Action(Model model)
{
var validationResult = model.Validate();
if (validationResult.Successful)
{
// this one's okay; it supports sending data with a 200
return Ok(validationResult);
}
else
{
// However, how do I return a custom data object here
// like so?
// No such overload, I wish there was
// return BadRequest(validationResult);
}
}
ApiController.BadRequest() 方法的唯一三个重载是:
1. BadRequest();
2. BadRequest(string message);
3. BadRequest(ModelStateDictionary modelState);
即使使用#3,模型状态字典也是一个层层叠加的深度集合,但在其底部是一堆KeyValuePair<string, ModelError>,其中每个ModelError也只有一个@987654328 @ 或 Exception 对象。
因此,即使使用#3,我们也只能打包一个string 来发送,而不是像我想要的那样自定义对象。
我真的不是在问我该如何解决这种情况。我的问题是:.NET API 中是否存在重载或其他方式以向客户端发送带有 Bad Request HTTP 状态代码的对象?
我正在使用面向 .NET Framework 版本 4.6.1 的 ASP.NET Web API 版本 5.2.4。
【问题讨论】:
-
获取您的自定义对象,将其序列化并使用第二个重载返回它。
-
@AndreiDragotoniu 谢谢。如果没有办法融入 .NET 框架,这就是我已经在考虑的事情之一。
标签: asp.net .net asp.net-web-api