Проблема привязки базовой модели ASP.NET: параметр [FromBody] всегда имеет значение null в запросе POSTC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Проблема привязки базовой модели ASP.NET: параметр [FromBody] всегда имеет значение null в запросе POST

Сообщение Anonymous »

Я работаю над конечной точкой веб-API ASP.NET Core, где мне нужно принять объект JSON из тела запроса POST. Однако этот параметр всегда равен нулю, даже при отправке правильно структурированного запроса от Swagger.
Вот что у меня есть — мой контроллер:

Код: Выделить всё

[ApiController]
[Route("/api/user/[controller]/[action]")]
[Authorize(Roles = ServiceConstants.AuthenticationRoleUser)]
public class DamavandController : BaseController
{
[HttpPost]
public async Task RequestTransactions([FromBody] GetTransactionModel transactionModel)
{
if (transactionModel == null)
{
_logger.LogError("Model binding failed: transactionModel is null.");
return BadRequest("Model binding failed: transactionModel is null.");
}

var transactions = await GetDamavandComponent().GetTransactions(transactionModel.DateFrom, transactionModel.DateTo, transactionModel.TerminalNumber, transactionModel.Limit, transactionModel.Offset);

return Ok(transactions);
}
}

namespace DecaPay.Controllers
{
[ApiController]
[Produces("application/json")]
[ProducesResponseType(StatusCodes.Status200OK)]
public class BaseController : ControllerBase
{
}
}
Мой класс модели:

Код: Выделить всё

public class GetTransactionModel
{
public string DateFrom { get; set; }
public string DateTo { get; set; }
public long TerminalNumber { get; set; }
public int Limit { get; set; } = 25;
public int Offset { get; set; } = 0;
}
Это JSON, который я публикую:

Код: Выделить всё

{
"DateFrom": "2024/08/19",
"DateTo": "2024/08/20",
"TerminalNumber": 123456,
"Limit": 25,
"Offset": 0
}
Что я пробовал:
  • Добавлен [ApiController] для включения автоматической модели привязка и проверка
  • Подтверждено, что структура полезных данных JSON в Swagger соответствует именам свойств GetTransactionModel
  • Установите значения по умолчанию для предела и смещения
  • Проверено, что Content-Type имеет значение application/json в Swagger


Подробнее здесь: https://stackoverflow.com/questions/791 ... post-reque
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»