Проблема привязки базовой модели 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

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