项目(Azure上的.NET Framework 4.6.1)有谁知道是否有使用一个控制器同时接受文件的上传和在同一请求模型实体(JSON)的方式。客户端应用程序需要上传文件,以及有关文件的元数据,我们想如果可能的话做,在一个请求。
我想到了两种可能性:
我失去了一个选择吗? TIA
我会尝试只是将文件添加到模型或创建的数据,并在它的文件中既有视图模型。由于数据绑定,只要在客户端输入的字段相同的名称,该数据将在请求期间被映射到该对象。
模型:
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>