使用MVC控制器中的文件将复杂对象传递给API

时间:2017-03-17 11:46:08

标签: c# json httppostedfilebase

我的对象如下所示:

var object = {User:{UserName:'test',UserId:232},
Addresses:[
    Address:{City:'Chennai',State:'Tamilnadu',PostCode:'34344'},
    Address:{City:'Salem',State:'Tamilnadu',PostCode:'243254'
    ]};

与此对象一起,我想传递可能包含图像/音频/视频/文档的文件。

现在我想将它从MVC控制器传递给API。 我已经将文件转换为Streamcontent并将其作为Json传递给对象,如下所示。

var fileContent = Request.Files[file];
                if (fileContent != null && fileContent.ContentLength > 0)
                {
                    stream = new StreamContent(fileContent.InputStream);
                    stream.Headers.Add("Content-Type", "application/octet-stream");
                    stream.Headers.Add("Content-Disposition", "form-data; name=\"file\"; filename=\"" + fileContent.FileName + "\"");

                }
     using (var response = client.PostAsJsonAsync(url, new { stream, Addresses, User }).Result)

现在,这将把对象和Stream作为Json传递给API。 我在API中检索对象作为FromBody

我可以从Json反序列化User和Address对象 但是我无法对流进行反序列化。

任何人都有想法将Json转换为流,或者是否有其他方式通过文件传递上述复杂对象?

编辑:我的实际问题是,我想发送复杂的对象(它将如上所示)与文件(它可能包含图像/音频/视频/文档)从MVC控制器到C#中的API

由于

0 个答案:

没有答案