我对实体框架和Web服务还很陌生。
我尝试做是通过调用Web API中update方法从winforms应用程序更新记录Http响应消息返回错误请求,并且不更新任何内容
要么是我在api中写的更新记录的代码有逻辑错误,要么是我在winform中写的代码有逻辑错误。我不知道问题出在哪里。
更新API中的方法
[HttpPut]
public async Task <IActionResult> UpdateStatus ([FromBody]BookStatus entity)
{
var original = Tools.Context.BookStatus. Find(1);
Tools.Context.Entry (original).CurrentValues.SetValues (entity);
var result = await Tools.Context.SaveChangesAsync();
if (result > 0)
return Ok (result);
return Badrequest ();
}
调用更新方法的Winform应用程序
private async void button3_click (object sender,EventArgs e)
{
BookStatus status = new BookStatus();
status.IsAvailable = true;
HttpClientHandler clientHandler = new HttpClientHandler();
clientHandler.ServerCertificateCustomValidationCallback=(sender,cert,chain,sslPolicyError)=>{return true;};
HttpClient client = new HttpClient(clientHandler);
client.BaseAdress = new Uri ("Https://localhost:5001");
var serialize = JsonConvert.SerializeObject (status);
var content = new StringContent(serialize,Encoding.UTF8,"application/json");
var result = await client.PutAsJsonAsync ("api/BookStatus/UpdateStatus",content);
Message.Text = result.StatusCode.ToString ()";
}
1条答案
按热度按时间bqf10yzr1#
我检查了你的代码,似乎PutAsJsonAsync方法有问题,webapi无法获取bookstatus的值。
我修改了winform客户端中的代码,webapi可以获得值
结果:
如果您需要有关webapi项目中代码的帮助,可以告诉我项目的更多细节,例如模型类和Dbcontext