C# 向MultipartFormDataContent添加键值对

C# 向MultipartFormDataContent添加键值对,c#,multipartform-data,C#,Multipartform Data,我正在尝试将一个文件和一些键值对上载到服务器 服务器的IT人员告诉我:“当我们的服务器接收到请求时,文件显示得很好,但是您的键值对中没有任何数据显示在请求中(正如ASP.Net解析的那样).我还没有确定到底发生了什么,但我怀疑它被隐藏在数据内容对象中,在内容对象的更深一层。” 下面是我正在使用的代码。如何将键值对“向上”移动?不幸的是,我不太善于交际 using (var content = new MultipartFormDataContent()) { var dataConten

我正在尝试将一个文件和一些键值对上载到服务器

服务器的IT人员告诉我:“当我们的服务器接收到请求时,文件显示得很好,但是您的键值对中没有任何数据显示在请求中(正如ASP.Net解析的那样).我还没有确定到底发生了什么,但我怀疑它被隐藏在数据内容对象中,在内容对象的更深一层。”

下面是我正在使用的代码。如何将键值对“向上”移动?不幸的是,我不太善于交际

using (var content = new MultipartFormDataContent())
{
    var dataContent = new FormUrlEncodedContent(new[]
    {
        new KeyValuePair<string, string>("Key1", "Value1"),
        new KeyValuePair<string, string>("Key2", "Value2")
    });
    content.Add(dataContent);

    using (var fileStream = File.OpenRead(filePathAndName))
    using (var fileStreamContent = new StreamContent(fileStream))
    {
        fileStreamContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data")
        {
            Name = "File",
            FileName = Path.GetFileName(filePathAndName)
        };
        fileStreamContent.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
        content.Add(fileStreamContent);
        using (var response = await client.PostAsync("api/datasets", content))
        {
            if (response.IsSuccessStatusCode)
            {
                Debug.WriteLine("Upload Success");
            }
            else
            {
                Debug.WriteLine("Upload Failed");
                Debug.WriteLine("Response : " + response);
            }
        }
    }
}

但是运气不好

发现问题出在服务器端

您的内容。添加(新的StringContent(“value”,“key1”)(键中没有附加引号)应该可以。你可以在这里找到一个例子:。我删除了额外的引号,但仍然没有运气。请提供更多详细信息,包括你当前代码的外观以及你得到的响应(状态代码、响应正文、异常?)谢谢你将此问题和代码留在网上:)
content.Add(new StringContent("Value1"), "\"Key1\"");
content.Add(new StringContent("Value2"), "\"Key2\"");