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