Существует вид для обновления сложной модели (транзакция).Сложная модель имеет свойства, которые могут иметь несколько вложений (файлов), поэтому пользователь может загружать несколько файлов одновременно в этой форме, и я пытаюсь сохранить эти файлы в базе данных.
Я успешно разместил несколько файлов всервер, следуя сообщению в блоге 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<Attachment> SpecsRequisitionerNotesFiles { get; set; }
}
public class Evaluation
{
[Key, ForeignKey("Transaction")]
public int TransactionId { get; set; }
public virtual Transaction Transaction { get; set; }
public virtual ICollection<Attachment> 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<HttpPostedFileBase> files)
{ //save to database }