У меня есть форма, в которой я загружаю несколько файлов, и есть пара текстовых полей и несколько флажков, связанных с каждым загружаемым файлом.Я видел примеры загрузки нескольких файлов, где сигнатура actionresult выглядит примерно так:
[HttpPost]
public ActionResult Upload(IEnumerable<HttpPostedFileBase> fileUpload)
Однако я не могу найти ни одного примера, где я могу загружать несколько файлов, где моя сигнатура actionresult выглядит примерно так:
[HttpPost]
public ActionResult Upload(MyViewModel vm)
Причина, по которой я хочу эта модель представления публикуется потому, что я думаю, что она чище, чем использование переменной FormCollection, и потому что я хочу, чтобы каждый загружаемый файл и данные, добавляемые вместе с соответствующими текстовыми полями, были сгруппированы вместе посредством List
который будет частью ViewModel
UPDATE
Модель My View ниже:
public class EmployeeVM
{
public int EmployeeID {get ;set;}
public string EmpName {get ;set;}
//Other properties
public List<FileUploadPacket> FileUploadPackets { get; set; }
}
Класс FileUploadPacket со свойством типа HttpPostedFileBase
public class FileUploadPacket
{
public int FileID {get ;set;}
public string UserEnteredDesc {get ;set;}
//some more other properties
public HttpPostedFileBase UpFile { get; set; }
}
Фрагмент кода моего view.aspx, как показано ниже
<%: Html.TextBoxFor(model => model.EmpName, new { maxLength = 50 })%>
Upload your files here:
<input type="file" id="UpFile" name="UpFile" value="ActionHandlerForForm" />
<%: Html.TextBoxFor(model => model.FileUploadPackets[0].UserEnteredDesc )%>
<input type="file" id="UpFile" name="UpFile" value="ActionHandlerForForm" />
<%: Html.TextBoxFor(model => model.FileUploadPackets[1].UserEnteredDesc )%>
Как вы можете видите, у меня есть все другие свойства, характерные для этого загружаемого файла, которые хранятся в своем собственном классе. Чтобы в моей форме сотрудник мог ввести свое имя и загрузить свои файлы и предоставить какое-то описание и другие детали для каждого файла. Если я перемещу общедоступный HttpPostedFileBase UpFile { get; набор; }
классу EmployeeVM
, то мне придется собирать все файлы по отдельности в массив и вручную сопоставлять файл с его описанием. Нет ли способа сделать это, сохраняя свойство UpFile
в самом классе FileUploadPacket
?
Я использую механизм просмотра aspx.
Пожалуйста, помогите. Спасибо за ваше время...