Есть возможность обновить сложную модель(Транзакция). Сложная модель имеет свойства, которые могут иметь несколько вложений (файлов), чтобы пользователь мог загружать несколько файлов одновременно в этой форме, и я пытаюсь сохранить эти файлы в базу данных.
Я успешно отправил несколько файлов на сервер, следующий пост в блоге 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 }