当我尝试在我的angular 2应用程序的userdetails页面上更新userdetails时,我将面临put方法的“ Http故障响应”。 任何人都可以给我提供解决以下错误的想法。
错误:- 消息:“请求的资源不支持http方法'PUT'。” 消息:“ http://localhost/TestWebAPI/api/UserDetails的Http错误响应:405方法不允许”
userdetails.component.ts
onUpdateUserClick(index)
{
this.objuserservice.UpdateUser(this.UpdateUser).subscribe
(
(response) => {
this.UpdateUser = response;
this.userslist[this.updateIndex].email = this.UpdateUser.email;
this.userslist[this.updateIndex].personname = this.UpdateUser.personname;
this.userslist[this.updateIndex].mobile = this.UpdateUser.mobile;
this.userslist[this.updateIndex].dateofbirth = this.UpdateUser.dateofbirth;
this.userslist[this.updateIndex].monthofbirth = this.UpdateUser.monthofbirth;this.userslist[this.updateIndex].yearofbirth=this.UpdateUser.yearofbirth;
this.userslist[this.updateIndex].gender = this.UpdateUser.gender;
this.userslist[this.updateIndex].country = this.UpdateUser.country;
},
(error)=>{
});
}
users.service.ts
UpdateUser(userobj:User):Observable<User>
{
return this.http.put<User>(`/TestWebAPI/api/UserDetails`,userobj,responseType:"json"});
}
这是我的asp.netwebapi(TestWebAPI)项目代码,
public void Put(int id, [FromBody]user objuser)
{
dbentity.Entry(objuser).State = System.Data.Entity.EntityState.Modified;
dbentity.SaveChanges();
}
答案 0 :(得分:1)
如果您在Web API中拥有默认路由,则应在Angular的URL中传递id
,例如:
UpdateUser(userobj:User):Observable<User>
{
this.http.put<User>("/TestWebAPI/api/UserDetails/" + userObj.Id, userobj,
responseType:"json"});
}