【发布时间】:2012-03-09 16:25:26
【问题描述】:
有一个更新复杂模型的视图(事务)。 复杂模型具有可以有多个附件(文件)的属性, 这样用户可以以这种形式同时上传多个文件, 我正在尝试将这些文件保存到数据库中。
我已成功将多个文件发布到服务器, 以下博客文章 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 }
【问题讨论】:
标签: asp.net-mvc-3 entity-framework file-upload model-binding