C# 将HttpPost与DTO一起使用时,postman无法调用tht方法
下面是我的HttpPost方法,我试图将输入作为DTo传递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("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"
}