0

我正在创建一个 ASP.NET MVC WEBAPI 应用程序,我实际上正在实现一个自定义 MediaTypeFormatter 来处理某种类型的内容。(例如 csv)

我的目标是阅读从我的网络浏览器中的表单发布的文件。但是我的 mediatypeformatter 的读取方法从未达到。

有没有人有 MediaTypeFormatters 的工作示例,其中读取了发布的文件?

或者有人可以指出一个方向?

表单:<form action="/API/controller/sendfile" method="post" enctype="multipart/form-data" >

我收到此错误:没有 MediaTypeFormatter 可用于从媒体类型为“multipart/form-data”的内容中读取类型为“IEnumerable`1”的对象。

4

1 回答 1

0

多部分有多个部分。因此,您需要阅读它们,如下所示:

public async Task Post()
{
    var multipart = await Request.Content.ReadAsMultipartAsync();

    foreach (var content in multipart.Contents)
    {
        var products = await content.ReadAsAsync<IEnumerable<Product>>();
    }
}

ReadAsAsync<T>可以根据您拥有的媒体格式化程序读取请求 - 开箱即用和自定义。因此,在您的情况下,如果您配置了 CSV 格式化程序,则取决于文件的 MIME 类型,它应该正确读取请求内容。

于 2013-05-13T12:39:07.773 回答