大家好,所以我想創建一個應用程序使用asp.net mvc的代碼第一個數據庫,允許用戶能夠上傳和下載圖像到目前爲止我已經得到它來保存到數據庫和顯示器,但我有我的控制器的問題,以解決如何讓用戶下載PDF文件。下載pdf使用asp.net codefirst
目前在控制器中有這些問題
其中強調說PoliciesImageModel不包含其中 的定義。政策加下劃線說不能轉換PoliciesImageModel爲字節
感謝anyhelp這個問題
我正在使用馬茨回答,但PoliciesImages和文件不被認可
查看
@model List<MyProject.Models.PoliciesPostVM>
@foreach (var item in Model)
{
@Html.DisplayFor(modelItem => item.FileName)
@Html.ActionLink("Download", "PoliciesDownload", new { id = item.ID})
}
控制器
public FileContentResult PoliciesDownload(int ID)
{
if (ID == 0) { return null; }
PoliciesImageModel policies = new PoliciesImageModel();
policies = policies.Where(a => a.ID == ID).SingleOrDefault();
return File(policies, "application/pdf");
}
模型
public partial class PoliciesPostModel
{
public PoliciesPostModel()
{
Pdfs = new List<PoliciesImageModel>();
}
[Key]
[HiddenInput(DisplayValue = false)]
public int ID { get; set; }
[Required(ErrorMessage = "Heading is Required")]
[Display(Name = "File Name")]
public string FileName { get; set; }
public virtual ICollection<PoliciesImageModel> Pdfs { get; set; }
public IEnumerable<HttpPostedFileBase> File { get; set; }
}
public class PoliciesImageModel
{
[Key]
public int ID { get; set; }
public string Path { get; set; }
public virtual PoliciesPostModel Post { get; set; }
public string DisplayName { get; set; }
}
public class PoliciesImageVM
{
public int? ID { get; set; }
public string Path { get; set; }
public string DisplayName { get; set; }
public bool IsDeleted { get; set; }
}
public partial class PoliciesPostVM
{
public PoliciesPostVM()
{
Pdfs = new List<PoliciesImageVM>();
}
public int? ID { get; set; }
public string FileName { get; set; }
public IEnumerable<HttpPostedFileBase> Files { get; set; }
public List<PoliciesImageVM> Pdfs { get; set; }
public IEnumerable<PoliciesPostModel> Posts { get; set; }
}
DbConext
public class EFDbContext: DbContext
{
#region Policies
public DbSet<PoliciesPostModel> PoliciesPosts { get; set; }
public DbSet<PoliciesImageModel> PoliciesImages { get; set; }
#endregion Policies
//other Dbsets are here too....
}
'Where'是LINQ擴展。您需要在'using'語句中引用的相應命名空間將其用作擴展方法。將'使用System.Linq'添加到文件的頂部。你只能在集合對象上使用'Where'。 – mason
你的策略var是ViewModel「PoliciesImageModel」的一個實例,所以你不能執行一個linq查詢。看起來不正確? – Wheels73