2013-05-13 48 views
0

我創建一個ASP.NET MVC WEBAPI應用程序,其中我實際上實現自定義MediaTypeFormatter來處理某些類型的內容。 (例如csv)如何閱讀文件與我的WebApi自定義MediaTypeFormatter

我的目標是閱讀從我的web瀏覽器中的表單發佈的文件。但是我的mediatypeformatter的讀取方法從來沒有達到過。

有沒有人有一個MediaTypeFormatters的工作示例,其中發佈的文件是在哪裏?

或者可以點一個方向嗎?

FORM: <形式行動= 「/ API /控制器/的sendfile」 方法= 「POST」 ENCTYPE = 「多部分/格式數據」 >

我得到這個誤差:無MediaTypeFormatter是提供給從媒體類型爲「multipart/form-data」的內容中讀取類型爲'IEnumerable`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類型,它應該正確讀取請求內容。