将FormData提交到C#/。NET

时间:2019-02-22 05:10:44

标签: c# asp.net angularjs multipartform-data form-data

我正在C#/。NET旧式框架之上运行Angular JS应用程序。

我需要上传和保存文件以及一些POST数据变量,因此需要使用FormData API。

let formData = new FormData();
formData.append('co-lo-import', file);
formData.append('data', someString);

然后我像这样发出xhr请求:

$http.post("//some/dot-net/endpoint/Default.aspx",
           formData,
           { headers: { "Content-Type" : "multipart/form-data" } 
});

在.NET方面,我试图从Request变量中获取这些值。

string someString = Request.Form['data'];

HttpFileCollection uploadedFiles = null;

if(Request.Files != null){
    uploadedFiles = Request.Files;
}

但是这些值始终为空。 Request.Form

中没有任何内容

我尝试了Request.Form.Get("data"),它也变成了空的。

我在请求有效负载中看到文件和数据:

request body

如何使用.NET在后端获取这些数据?

1 个答案:

答案 0 :(得分:0)

如果Request.Form中的数据不可用,请尝试从HTTP请求访问原始输入流中的字节:

using(var reader = new StreamReader(Request.InputStream))
{
    content = reader.ReadToEnd();
}