MVC3, загрузка нескольких файлов, привязка модели

Есть возможность обновить сложную модель(Транзакция). Сложная модель имеет свойства, которые могут иметь несколько вложений (файлов), чтобы пользователь мог загружать несколько файлов одновременно в этой форме, и я пытаюсь сохранить эти файлы в базу данных.

Я успешно отправил несколько файлов на сервер, следующий пост в блоге http://haacked.com/archive/2010/07/16/uploading-files-with-aspnetmvc.aspx.

Однако для того, чтобы сохранить эти файлы, чтобы я мог отслеживать, какие файлы принадлежат какому объекту сложной модели (транзакции) и, следовательно, отображать их позже в соответствующих местах, мне нужен какой-то способ связать файл, загруженный в объект, которому он принадлежит, но поскольку все файлы имеют имя «файлы», я не знаю, как я могу заставить это работать.

Вот упрощенная сложная модель:

public class Transaction
{
    [Key]
    public int Id { get; set; }

    public virtual PurchaseRequisition PurchaseRequisition { get; set; }

    public virtual Evaluation Evaluation { get; set; }
}

Свойства сложной модели:

public class PurchaseRequisition
{
    [Key, ForeignKey("Transaction")]
    public int TransactionId { get; set; }

    public virtual Transaction Transaction { get; set; } 

    [Display(Name = "Specifications/Requisitioner's Notes")]
    public virtual ICollection SpecsRequisitionerNotesFiles { get; set; }
}

public class Evaluation
{
    [Key, ForeignKey("Transaction")]
    public int TransactionId { get; set; }

    public virtual Transaction Transaction { get; set; }

    public virtual ICollection BidResultsFiles { get; set; }
}

public abstract class Attachment
{
    [Key]
    public int Id { get; set; }

    public string FileName { get; set; }

    public string FileExtension { get; set; }

    public byte[] Data { get; set; }

    public Boolean Deleted { get; set; }
}

Вот контроллер:

[HttpPost]
public ActionResult Create(TransactionViewModel model, IEnumerable files)
{ //save to database }

6
задан ljustin 9 March 2012 в 16:33
поделиться