我刚从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没有返回任何相关结果。有人可以提供有关此问题的见解吗?
答案 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
此致 特洛伊