У меня есть этот код ниже, и я хочу передать два параметра из приложения Angular 7 в мой контроллер Asp.Net Core WebApi, я просто не знаю синтаксис пост-вызова Angular http в контроллер.Контроллер получает все нулевые значения при нажатии.Но я могу передать в модели, она работает просто отлично!
Вопрос - вот что я не понимаю.Когда я передаю модель, подобную этой,
[HttpPost("confirm")]
public async Task<IActionResult> ConfirmEmail(EmailConfirmationOptions options) {}
, и мой пост также передается в модели, как эта.Это работает!
const model = {UserId: userId, Code: code };
return this.http.post(this.baseUrl + 'confirm', model);
Вот мой Angular-вызов, в котором я пробовал разные значения, но ни одно из них, похоже, не передает их правильно.
confirm(userId: number, code: string) {
// return this.http.post(this.baseUrl + 'confirm, { userId, code });
// return this.http.post(this.baseUrl + 'confirm/' + userId + '/code/' + code, {});
return this.http.post(this.baseUrl + 'confirm', userId);
}
Вот мой контроллер, куда входит userIdкак 0 и код приходит в ноль
[AllowAnonymous]
//[HttpPost("confirm")]
//[HttpPost("{id}/{code}", Name = "confirm")]
// [HttpPost("{userId}", Name = "confirm")]
[HttpPost("confirm")]
public async Task<IActionResult> ConfirmEmail(string userId, string code)
{
if (userId == null || code == null)
{
return BadRequest("error");
}
var user = await _userManager.FindByIdAsync(userId);
if (user == null) {
return BadRequest("error");
}
// code = Encoding.UTF8.GetString(WebEncoders.Base64UrlDecode(code));
var result = await _userManager.ConfirmEmailAsync(user, code);
if (result.Succeeded) {
return Ok();
} else {
return BadRequest("error");
}
}