如何使用我的Web Api Custom MediaTypeFormatter读取文件

时间:2013-05-13 10:36:20

标签: c# asp.net csv asp.net-web-api mediatypeformatter

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

我的目标是阅读从我的webbrowser中的表单发布的文件。但是我的mediatypeformatter的读取方法永远不会到达。

有没有人有一个MediaTypeFormatters的工作示例,其中已发布文件被重命名?

或者有人可以指出方向吗?

FORM:     < form action =“/ API / controller / sendfile”method =“post”enctype =“multipart / form-data”>

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

1 个答案:

答案 0 :(得分: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类型,它应该正确读取请求内容。