我正在尝试将文件和模型提供给我的api控制器并通过发送来自fiddler的请求进行测试。到目前为止,我已经设法使用MultipartDataMediaFormatter接收文件,但我无法接收字段。 some变量将为空:
[HttpPost]
public IHttpActionResult Add(FormData formData)
{
HttpFile file;
formData.TryGetValue("fieldNameHere", out file);
string some;
formData.TryGetValue("code", out some);
请求是
---------------------------acebdf13572468
Content-Disposition: form-data; name="fieldNameHere"; filename="result.pdf"
Content-Type: application/pdf
<@INCLUDE *C:\Users\mikhail.yakhyaev\Documents\result.pdf*@>
---------------------------acebdf13572468
Content-Disposition: form-data; name="code"
asdf
---------------------------acebdf13572468--
我已尝试将签名设为IHttpActionResult Add(HttpPostedFileBase fieldNameHere)
,但返回的错误是请求未触及该方法。
也许请求本身包含错误?
答案 0 :(得分:0)
我只是遇到了同样的问题,幸运地尝试了很多并找到了解决方案。 您是否注意到您的模型内容类型的请求也是表单数据,这就是您不能以这种方式在api中使用FormData的原因。代码:
public IHttpActionResult Add(FormData formData)
{
foreach(var fileValue in formData.Files){
//do any you want
}
foreach(var field in formData.Fields){
//do any you want
}
//may that be helpful
}
答案 1 :(得分:0)
您是否在视图中将encType = "multipart/form-data"
添加到了表单标记中?