使用ASP.NET WebAPI在角度2中放置方法的HTTP失败响应

时间:2018-11-23 10:32:34

标签: angular asp.net-web-api

当我尝试在我的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();
}

1 个答案:

答案 0 :(得分:1)

如果您在Web API中拥有默认路由,则应在Angular的URL中传递id,例如:

UpdateUser(userobj:User):Observable<User>
{  
    this.http.put<User>("/TestWebAPI/api/UserDetails/" + userObj.Id, userobj,
        responseType:"json"});
}