Я бы попробовал просто добавить файл в модель или создать 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>