【发布时间】:2019-05-04 02:34:19
【问题描述】:
我使用 ASP.NET Core 创建了一个服务器,前端使用 Angular 6。
我在Angular 6中创建了一个表单。在组件中,我创建了一个向服务层发送数据并将数据发送到服务器的函数,但它没有进入服务器。它没有显示任何错误。
有什么问题?是后端还是前端?
用户.ts
changeActive(id:number) {
this.userService.GetUserById(id).subscribe((data) => {
if(data.isActive)
{
data.isActive = false;
} else {
data.isActive = true;
}
console.log("send data in service");
this.userService.Active(data);
})
}
角度服务:
public Active(user:IUser):Observable<IUser> {
console.log("we get data from component");
console.log(user);
return this.http.post<IUser>(this.baseUrl + 'Active', user, { headers: this.headers })
.pipe(tap((user: IUser) => this.log(`Active user w/ email=${user}`)),
catchError(this.handleError<IUser>('Active user'))
);
}
ASP.NET Core 控制器:
[HttpPut("Active")]
public async Task<ActionResult> ActiveAccount(User model)
{
if (ModelState.IsValid)
{
var user = await _applicationUserManager.FindUserById(model.Id);
user.IsActive = model.IsActive;
await _applicationUserManager.UpdateAsync(user);
return Ok();
}
return BadRequest();
}
【问题讨论】:
-
尝试在 API 的
ActiveAccount属性中将HttpPut更改为HttpPost。要么那个,要么做一个put而不是一个post。 -
你没有订阅从
Active返回的 Observable -
@R.Richards 我尝试了,但它不起作用
-
进行@user184994 建议的更改后会发生什么?我希望您现在收到一条错误消息,因此请包含它。
-
它不会显示任何错误或消息
标签: angular asp.net-core angular6 asp.net-core-webapi angular-http