gpt4 book ai didi

c# - 无法让 HTTP PUT 请求在 ASP.NET Core 中工作

转载 作者:太空宇宙 更新时间:2023-11-03 22:39:16 24 4
gpt4 key购买 nike

我正在尝试更新 game 表中的条目。但是,我在 ASP.NET 中的 PUT 请求似乎从未触发,我也不知道为什么。

这是 ASP.NET 中的 Controller :

[Route("game/{update.GameID}")]
[HttpPut]
public IActionResult updateGame([FromBody]Game update)
{
var result = context.Games.SingleOrDefault(g => g.GameID == update.GameID);
if (result != null)
{
result = update;
context.SaveChanges();
}
return Created("", result);
}

这是我在 Angular 中使用的代码:

url:string;
constructor(private _http: HttpClient) {
this.url = "https://localhost:44359/api/v1/"
};

putGame(id:number, game:Game){
return this._http.put(this.url + "game/" + id, game);
}

编辑 1:我确实有一个 GET 请求列表,它们都可以正常工作。只有 PUT 请求失败了。

最佳答案

如果您正在使用 PUT 请求,您需要添加一个资源 ID 来更新或创建新的 - 所以不要将您的 ID 与您的对象结合使用

[HttpPut("game/{id}")]
public IActionResult UpdateGame(int id, [FromBody]Game update) {
//...
}

如果您使用的是 Asp.net Core,您只需像上面的代码一样在 HTTP verbs 属性上重写您的 URL - 所以在 URL 中传递您的资源 ID,并将您的对象绑定(bind)到body - 你的 URL 应该读作 https://localhost:44359/api/v1/game/2

希望这对您有所帮助 - 编码愉快!!

关于c# - 无法让 HTTP PUT 请求在 ASP.NET Core 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53244551/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com