В настоящее время я обновляю ASP. NET Core Web API с 2.2 до 3.1. Я проверяю контроллеры через PostMan, чтобы убедиться, что все в порядке. Не то. При первой попытке входа в систему я отправляю действительное имя пользователя и пароль в запросе HttpPost через Postman в веб-API. Однако, когда он вызывает конструктор входа в систему, он возвращает NULL, что означает, что модель не содержит имя пользователя и пароль, которые я только что передал. Кто-нибудь знает, почему это происходит?
Примечание 1. Я уверен, что запрос Post, который я отправляю через PostMan, является правильным, поскольку я могу успешно отправить тот же запрос в. NET Core 2.2 web API .
Примечание 2: WebApi работает. NET Core 3.1 с JsonApiDotNetCore
4.0.0-alpha4, тогда как модель содержится в отдельном. NET Стандартном проекте 2.1 с JsonApiDotNetCore
3.1 ( Я не могу обновить до 4.0.0-alpha4, потому что он не поддерживает. NET Стандарт 2.1). Может ли это быть причиной?
Контроллер входа
using Test_Model.Users;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
using System;
using System.Threading.Tasks;
namespace Test_WebApi.Controllers.Tokens
{
public class TokensController : ControllerBase
{
public TokensController(
IConfiguration objConfig,
ILogger<TokensController> objLogger,
IServiceProvider objServiceProvider)
: base(objConfig, objLogger, objServiceProvider)
{ }
[AllowAnonymous]
[HttpPost("/clients/login")]
public async Task<IActionResult> LoginAsync([FromBody] Login objLogin)
{
return new JsonResult(objLogin);
}
}
}
Модель входа
using JsonApiDotNetCore.Models;
using System.ComponentModel.DataAnnotations;
public class Login
{
// Constructor
public Login() { } // When I place a breakpoint here, the debugger returns a NULL model in 3.1 but returns the model with the correct values from PostMan.
// Properties
[Required]
[EmailAddress]
[Attr("username")]
public string UserName { get; set; }
[Required]
[Attr("password")]
public string Password { get; set; }
[Required]
[Attr("rememberme")]
public bool RememberMe { get; set; }
}
jsonapido tnet не заполняет свойства.
Обновление
Запрос почты почтальона:
{
username: "test@test.com",
password: "12345",
rememberme: "false"
}
Настройки почты почтальона:
Body = Raw
Заголовки (ключ / значение):
Accept / application/json
Content-Type / application/json