C# 将HttpPost与DTO一起使用时,postman无法调用tht方法

C# 将HttpPost与DTO一起使用时,postman无法调用tht方法,c#,asp.net-core-5.0,C#,Asp.net Core 5.0,下面是我的HttpPost方法,我试图将输入作为DTo传递 [HttpPost("register")] public async Task<ActionResult<AppUser>> Register(RegisterDto registerDto) { if (await UserExists(registerDto.Username)) return BadRequest("Username is ta

下面是我的HttpPost方法,我试图将输入作为DTo传递

[HttpPost("register")]
    public async Task<ActionResult<AppUser>> Register(RegisterDto registerDto)
    {
        if (await UserExists(registerDto.Username)) return BadRequest("Username is taken");

        using var hmac = new HMACSHA512();
        var user = new AppUser
        {
            UserName = registerDto.Username.ToLower(),
            //UserName = username,
            PasswordHash = hmac.ComputeHash(Encoding.UTF8.GetBytes(registerDto.Password)),
            //PasswordHash = hmac.ComputeHash(Encoding.UTF8.GetBytes(password)),
            PasswordSalt = hmac.Key
        };
        _context.Users.Add(user);
        await _context.SaveChangesAsync();

        return user;
    }
当我试图在postman中测试这个方法时,它抛出了一个错误作为415不支持的媒体类型,请检查下面的图像。 邮差错误:-


您可能希望用JSON属性装饰DTO,使其看起来像这样:

public class RegisterDto
{
    [JsonProperty("username")]
    public string Username { get; set; }
    [JsonProperty("password")]
    public string Password { get; set; }
}
然后在您的post JSON中使用匹配的数据大小写

{
   "username":"jane@doe.com",
   "password":"somethingsecure"
}
对不起,我的错

我需要在postman中选择内容类型为json,它以前是纯文本的,所以它抛出了错误

如何将postman中的内容类型设置为JSON(application/JSON)

转到POST请求中的正文,在那里您将找到原始选项


在它旁边有一个下拉列表,选择JSON(application.JSON)。

必须通过body而不是querystring传递参数
{
   "username":"jane@doe.com",
   "password":"somethingsecure"
}