Xamarin中如何通过Api更新数据

How to update data through Api in Xamarin

我通过 API 执行更新命令。一切似乎都很好。但是,数据不是最新的。当我调试时没有错误。

    public async Task UpdateViewRatingStore(bool value)
    {
        var url = baseUrl + userget;
        HttpClient client = new HttpClient();
        client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", mytokenlogin);
        string jsonStr = await client.GetStringAsync(url);

        var res = JsonConvert.DeserializeObject<Customer>(jsonStr);

        var checkunredrating = res.RatingStores;

        if (checkunredrating != null)
        {
            foreach (var r in checkunredrating)
            {
                r.ID = r.ID;
                r.StoreID = r.StoreID;
                r.RatingStores = r.RatingStores;
                r.CommentStore = r.CommentStore;
                r.UserRating = r.UserRating;
                r.CreateDay = r.CreateDay;
                r.Display = r.Display;
                r.ViewStorer = value;

                var urlput = baseUrlStoreRating + r.ID;
                var stringContent = new StringContent(JsonConvert.SerializeObject(res.RatingStores), Encoding.UTF8, "application/json");
                await client.PutAsync(urlput, stringContent);
            }
        }
    }

然而,当我检查数据库时,它仍然没有更新。我在 swagger 上手动测试了它,Posman 没问题。我哪里做错了?请求帮忙。谢谢

您正在尝试更新单个对象,但每次都传递整个集合

相反,试试这个

foreach (var r in checkunredrating)
{
    // you only need to update the changed values
    r.ViewStorer = value;

    var urlput = baseUrlStoreRating + r.ID;

    // only send the current object you are updating
    var stringContent = new StringContent(JsonConvert.SerializeObject(r), Encoding.UTF8, "application/json");
    await client.PutAsync(urlput, stringContent);
}