项目为(Azure上的.net Framework 4.6.1) 有谁知道在相同的请求中是否有一种方法可以使用Controller来接受文件上传和模型实体(Json)。客户端应用需要上传文件以及有关文件的元数据,如果可能,我们希望在一个请求中完成。
我想到了两种可能性:
我缺少选择吗? TIA
答案 0 :(得分:0)
我要尝试的只是将文件添加到模型中,或者创建一个同时包含数据和文件的ViewModel。由于数据绑定,只要您在客户端中的输入字段具有相同的名称,该数据就会在请求期间映射到该对象。
型号:
public class yourModel
{
public string name {get;set;}
...
//other data
public IFormFile yourFile {get;set;} //your file
...
}
控制器:
[Route("YourRoute")]
[HttpPost]
public async Task<WhateverYouWantToReturn> YourAction(yourModel model)
{
//set a breakpoint here to see if your fields populated
...
//do something with your model
...
return WhateverYouWantToReturn;
}
查看: 只要输入字段的名称与对象中字段的名称匹配,它们就应该映射。
<form enctype="multipart/formdata" method="post" action="/your/route">
<input type="text" name="name"/>
<input type="hidden" name="somesHiddenField" value="yourValue" />
... <!-- Whatever other fields you need. -->
<input type="file" name="yourFile"/>
<input type="submit" value="Submit" />
</form>