我正在创建一个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”类型的对象。
答案 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类型,它应该正确读取请求内容。