Загрузка файла привязана к модели представления

У меня есть форма, в которой я загружаю несколько файлов, и есть пара текстовых полей и несколько флажков, связанных с каждым загружаемым файлом.Я видел примеры загрузки нескольких файлов, где сигнатура 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.

Пожалуйста, помогите. Спасибо за ваше время...

8
задан tereško 21 June 2012 в 16:31
поделиться