在asp.net mvc4 WebApi beta升级之后,不能使用FirstDispositionNameOrDefault

时间:2012-11-27 23:44:14

标签: asp.net-web-api wcf-web-api

我刚从WebApi beta升级到NuGet的最新WebApi软件包。我使用的visual studio项目的目标是.NET 4.0而不是4.5。

我能够解决所有问题而不是一个问题。我使用Multipart Form通过以下代码上传文件:

        // Verify that this is an HTML Form file upload request
        if (!Request.Content.IsMimeMultipartContent("form-data"))
        {
            throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
        }

        var task = Request.Content.ReadAsMultipartAsync();

        var dateField = task.Result.FirstDispositionNameOrDefault("expireby");

        if (dateField == null)
        {
            return this.SendResponse(HttpStatusCode.BadRequest, ":dateNotFound:");
        }

        var dateFieldValue = dateField.ReadAsStringAsync().Result;

        if (!DateTime.TryParse(dateFieldValue, out expireBy))
        {
            return this.SendResponse(HttpStatusCode.BadRequest, ":invalidDateFormat:");
        }

方法FirstDispositionNameOrDefault不再被编译,我收到以下错误:

  

'System.Net.Http.MultipartMemoryStreamProvider'不包含   'FirstDispositionNameOrDefault'的定义,没有扩展方法   'FirstDispositionNameOrDefault'接受第一个类型的参数   可以找到'System.Net.Http.MultipartMemoryStreamProvider'(是   你错过了使用指令或程序集引用?)

Google没有返回任何相关结果。有人可以提供有关此问题的见解吗?

1 个答案:

答案 0 :(得分:2)

您在代码中使用的API确实在Beta之后发生了变化。它旨在解决以下问题:http://aspnetwebstack.codeplex.com/workitem/53

这是更改集http://aspnetwebstack.codeplex.com/SourceControl/changeset/8fda60945d49

如果其他一些说明有帮助,那么这里是http://www.asp.net/web-api/overview/working-with-http/sending-html-form-data,-part-2

此致 特洛伊