Существует возможность обновления сложной модели (транзакции). Сложная модель имеет свойства, которые могут иметь несколько вложений (файлов), , так что пользователь может загружать несколько файлов одновременно в этой форме, и пытаюсь сохранить эти файлы в базе данных.MVC3, множественная загрузка файла, привязка к модели
Я успешно разместил несколько файлов на сервере, Следующее сообщение в блоге http://haacked.com/archive/2010/07/16/uploading-files-with-aspnetmvc.aspx.
Однако, чтобы сохранить эти файлы, чтобы я мог отслеживать, какие файлы принадлежат объекту сложной модели (Transaction), и поэтому показывать их позже в соответствующих местах, мне нужен способ связать файл, загруженный в объект, к которому он принадлежит, но поскольку все файлы попадают под именами файлов, я не знаю, как я могу это сделать.
Здесь упрощена комплексная модель:
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 }
Это работало отлично. Спасибо!! – ljustin