3

我读过 NameValueCollection 允许添加重复的键,但是当我尝试使用它时似乎并非如此。

我的代码

using (var wb = new WebClient())
{
     var data = new NameValueCollection();
     var sourceData = (List<Dictionary<string, object>>)dic["mapData"];
     var countSource = sourceData.Count;

     foreach (var item in (List<Dictionary<string, object>>)dic["mapData"])
     {
          data.Add("pp", item["Latitude"].ToString() + "," + item["Longitude"].ToString());
     }

     var dataCount = data.Count;
     var response = wb.UploadValues(@"http://dev.virtualearth.net/REST/V1/Imagery/Map/road/?mapArea=" + swLat.ToString() + "," + swLong + "," + neLat + "," + neLong + "&mapSize=800,600&key=" + key, "POST", data);

     return this.LargeJson(new { imageData = CreateBase64Image(response) });
}

我在观察什么

我的 sourceData 包含 36 项

手表

我正在遍历 sourceData 并将项目添加到我的 NameValueCollection 数据并添加具有相同键“pp”的项目

我希望在我的数据 NameValueCollection 中有 36 个项目,但我只得到 1 个并且我的所有值都附加到同一个键上。

我错过了什么?

4

1 回答 1

9

这是预期的行为 - 请参阅文档

如果指定的键已存在于目标 NameValueCollection 实例中,则将指定的值添加到现有的以逗号分隔的值列表中,格式为“value1,value2,value3”。这些值与目标 NameValueCollection 实例中的相同键相关联。

于 2014-02-05T23:24:54.983 回答