假设我们有一个html表单,可以发布带有产品名称和描述的产品图片。
产品名称 : 说明: 图像文件我想在不使用提供者formdata的情况下检索“ProductName”和“Description”字段值。
Web API控制器 -
if (!Request.Content.IsMimeMultipartContent())
{
throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
}
try
{
// Read the form data.
await Request.Content.ReadAsMultipartAsync(provider);
// Show all the key-value pairs.
foreach (var key in provider.FormData.AllKeys)
{
foreach (var val in provider.FormData.GetValues(key))
{
Trace.WriteLine(string.Format("{0}: {1}", key, val));
}
}
}
catch (System.Exception e)
{
return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e);
}
我们可以轻松获得所有物业价值。但是我们可以制作如下的网络Api功能:
[HttpPost]
public IHttpActionResult Upload(ProductInfo model){
return Content(HttpStatusCode.OK, true);
}
Public Class ProductInfo {
public string ProductName{ get; set; }
public string Description{ get; set; }
}
答案 0 :(得分:0)
你可以这样试试,只需添加IEnumerable<HttpPostedFileBase> files
作为参数即可。 DefaultModelBinder
,如果存在多部分表单数据,则会自动正确绑定到您的参数类型。
[HttpPost]
public IHttpActionResult Upload(ProductInfo model,
IEnumerable<HttpPostedFileBase> files)
{
return Content(HttpStatusCode.OK, true);
}