1

我刚刚从 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”类型的第一个参数(您是否缺少 using 指令还是汇编参考?)

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

4

1 回答 1

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

问候,特洛伊

于 2012-11-28T06:23:44.350 回答