Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 不能加上「;“边界”;到多部分/表单数据_C#_Asp.net_Asp.net Web Api - Fatal编程技术网

C# 不能加上「;“边界”;到多部分/表单数据

C# 不能加上「;“边界”;到多部分/表单数据,c#,asp.net,asp.net-web-api,C#,Asp.net,Asp.net Web Api,我正在尝试向web api发布一个多部分请求。我的控制器如下所示: using (var client = new HttpClient()) { var obj = JsonConvert.SerializeObject( model, Formatting.None, new HttpPostedFileConverter()); var boundary = "----" + DateTime.Now.Ti

我正在尝试向web api发布一个多部分请求。我的控制器如下所示:

using (var client = new HttpClient())
{
    var obj = JsonConvert.SerializeObject(
        model,
        Formatting.None,
        new HttpPostedFileConverter());
    var boundary = "----" + DateTime.Now.Ticks.ToString("x", NumberFormatInfo.InvariantInfo);
    var contentType = new StringBuilder("multipart/form-data; boundary=")
        .Append(boundary);
    var httpContent = new StringContent(
        obj,
        Encoding.UTF8,
        contentType.ToString());  //error shows here
    var uri = new StringBuilder(_domain)
        .Append("/api/email/send");
    var response = await client.PostAsync(uri.ToString(), httpContent);  
    ....  
    ....  
}  
当我尝试添加
contentType
时,就会出现问题。它显示值的多部分/表单数据格式的错误
;boundary=--***'无效。

模型
包含如下数据:


附件
类型为
列表
。我没有使用
MultipartFormDataContent
,因为我的模型中上传的文件是json格式的,我不知道如何使用
MultipartFormDataContent
。如果有人能告诉我这里出了什么问题,或者这不是正确的发帖方式,那么请给我举个例子。不确定这是否能完全回答你的问题,但我正在处理这个问题,并找到了两种方法

方法一

myHttpRequestMessage.Content.Headers.Remove("Content-Type");                    
myHttpRequestMessage.Content.Headers.TryAddWithoutValidation("Content-Type", "multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW");
方法二

myHttpRequestMessage.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("multipart/form-data");
myHttpRequestMessage.Content.Headers.ContentType.Parameters.Add(new System.Net.Http.Headers.NameValueHeaderValue("boundary", "----WebKitFormBoundary7MA4YWxkTrZu0gW"));
然而,尽管如此,在我的特殊情况下,与你的不完全匹配,解决方案是

System.Net.Http.MultipartFormDataContent myMultipartFormDataContent = new System.Net.Http.MultipartFormDataContent("------WebKitFormBoundary7MA4YWxkTrZu0gW");
myMultipartFormDataContent.Add(new System.Net.Http.StringContent(myTextValue), "users_file", "userAccounts.csv");
myHttpRequestMessage.Content = myMultipartFormDataContent;