Я хотел бы вернуть объект данных, который содержит подробную информацию об ошибке, с объектом 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
также имеет только string
или Exception
объект.
Поэтому даже с # 3 мы можем упаковать только string
для отправки, а не пользовательский объект, как я хочук.
Я действительно не спрашиваю, как я могу сделать хак или клудж в этой ситуации.У меня такой вопрос: есть ли перегрузка или другой способ, запеченный в .NET API для отправки объекта клиенту с Плохой запрос HTTP-код состояния?
Я использую ASP.NETWeb API версии 5.2.4 для .NET Framework версии 4.6.1.