По какой-то причине мой запрос PUT выдает ошибку BadRequest. Я проверил, в чем причина, и причина в том, что "gebruikersnaam" при поступлении на сторону .NET имеет значение null, а не его значение.
[HttpPut("naam")]
public async Task<IActionResult> VeranderNaam(string gebruikersnaam)
{
IdentityUser user = await this._userManager.FindByNameAsync(User.Identity.Name);
Gebruiker gebruiker = this._gebruikerRepository.GetBy(user.UserName);
Brouwer brouwer = this._brouwerRepository.GetBy(user.UserName);
user.UserName = gebruikersnaam;
var result = await _userManager.UpdateAsync(user);
if (result.Succeeded)
{
if (brouwer != null)
{
brouwer.Naam = gebruikersnaam;
this._brouwerRepository.Update(brouwer);
this._brouwerRepository.SaveChanges();
return Ok();
}
else if (gebruiker != null)
{
gebruiker.Gebruikersnaam = gebruikersnaam;
this._gebruikerRepository.Update(gebruiker);
this._gebruikerRepository.SaveChanges();
return Ok();
}
}
return BadRequest();
}
угловой код
onSubmitNaam() {
console.info(this.gebruikersnaam.value.gebruikersnaam);
this.authService.veranderNaam(this.gebruikersnaam.value.gebruikersnaam).subscribe(
() => {
this.success = "Uw naam is met success aangepast";
}, err => {
this.error = "Uw naam is niet aangepast";
}
)
this.gebruikersnaam.reset();
}
veranderNaam(gebruikersnaam: string) {
return this.http.put(`${environment.apiUrl}/gebruikers/naam`, gebruikersnaam);
}
Я знаю, что моя форма получает значение, оно отправляется из формы через запрос, но при получении запроса оно «становится» нулевым.
Как инструменты разработчика вашего браузера говорят, что в конечном итоге запрос выглядит? (Снимок экрана)
Я нашел решение из-за вашего комментария, проблема заключалась в том, что я не использовал параметр запроса
В этой строке кода вы отправляете body
не в строке запроса
return this.http.put(`${environment.apiUrl}/gebruikers/naam`, gebruikersnaam);
Поэтому, если вы хотите, чтобы ваш код работал, вы можете перейти на этот
public async Task<IActionResult> VeranderNaam([FromBody] string gebruikersnaam)
Или вы можете использовать queryParams
В угловой моей форме при отправке вызовов onSubmitNaam() этот метод вызывает veranderNaam в authService, который выполняет http-вызов метода C# VeranderNaam.