ASP.NET Core: BindRequired и соответствующая ошибка - PullRequest
1 голос
/ 18 мая 2019

У меня есть следующий метод API:

    [HttpPut]
    public async Task<IActionResult> SetToken([FromQuery, BindRequired]string token)
    {

Итак, как мы видим, token требуется.

Попробуйте вызвать метод без token:

PUT api/profile/SetToken

и мы получаем ответ в следующем формате json:

{ "токен": [ «Значение для свойства« токен »не указано». ] }

Но я бы хотел получить другой формат, например, такой (это унифицированный формат для нашего проекта):

{
  "error": {
    "code": "string",
    "message": "string",
    "target": "string",
    "details": [
      {
        "code": "string",
        "message": "string",
        "target": "string"
      }
    ],
    "innererror": {
      "code": "string"
    }
  }
}

Как настроить BindRequired таким способом?

1 Ответ

1 голос
/ 18 мая 2019

На самом деле нет конструктора, который принимает сообщение об ошибке, поэтому нет способа настроить ошибку. Как указано в Документах , эта ошибка записывается в ModelState.

Что вы можете сделать, это написать свой собственный атрибут BindRequired-Attribute с помощью конструктора, который принимает сообщение об ошибке и записывает его в ответ.

...