会话只捕获列表中最后一个对象的数据

Session only captures the data of the last object within the list

Session["DeviceIDs"] 有一个存储有两个 ID 的列表。 Foreach 方法会将每个 id 传递给网络 url/deviceIDs。唯一被读取的 id 是最后一个 id。我如何传递存储在 Session["DeviceIDs] 中的所有 ID?这可能与 var response = await httpClient.SendAsync(request); 有关系吗??提前致谢

    public async void PatchMethodAsync()
    {
        using (var httpClient = new HttpClient())
        {
            if (Session["DeviceIDs"] != null)
            {
                //Check all ids in Session
                foreach (var ids in Session["DeviceIDs"].ToString())
                {
                    //Pass each individual id from Session to device id in url
                    using (var request = new HttpRequestMessage(new HttpMethod("PATCH"), "https://www.website.com/devices/" + Session["DeviceIDs"]))
                    {
                        request.Content = new StringContent("{\"enabled\": \"y\"}", Encoding.UTF8, "application/json");

                        var response = await httpClient.SendAsync(request);
                    }

                }
            }
            else
            {
                //Do something
            }
        }
    }

我相信您正在寻找这样的东西

List<Task<ResponseObject>> tasks = new List<Task>();
foreach (var id in Session["DeviceIDs"].ToString())
{
    ...//create the request Message using id
    tasks.Add(httpClient.SendAsync(request));
}

var responses = await Task.WhenAll(tasks.ToArray());