Кажется, не может отправить строку поверх запроса PUT - PullRequest
0 голосов
/ 22 мая 2019

По какой-то причине мой запрос PUT выдает ошибку BadRequest.Я проверил, в чем причина, и причина в том, что "gebruikersnaam" при поступлении на стороне .NET является нулевым, а не его значением.

[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.log(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);
    }

Я знаю, что моя форма получает значение, она отправляется из формы через запрос, но при поступлении запроса она "становится" нулевой.

1 Ответ

2 голосов
/ 22 мая 2019

В этой строке кода вы отправляете body не в строке запроса

return this.http.put(`${environment.apiUrl}/gebruikers/naam`, gebruikersnaam);

Так что, если вы хотите, чтобы ваш код работал, вы можете изменить его на

public async Task<IActionResult> VeranderNaam([FromBody] string gebruikersnaam)

Или вы можете использовать queryParams

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...