Привет всем, поэтому я пытаюсь создать приложение с использованием asp.net mvc с первой базой данных кода, которая позволяет пользователям загружать и загружать изображения, пока я их сохранил в базу данных и отображение, но у меня возникают проблемы с моим контроллером, чтобы выяснить, как разрешить пользователю загружать PDF-файл.Загрузить pdf с помощью asp.net codefirst
В настоящее время в контроллере есть эти вопросы
где подчеркнут говоря PoliciesImageModel не содержит определение где . и политика подчеркнута говоря, не может преобразовать PoliciesImageModel в байты
Спасибо за anyhelp с этим вопросом
Обновление Я использую MATTS ответ, но PoliciesImages и файл не распознается
View
@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'. Добавьте 'using System.Linq' в начало файла. И вы можете использовать 'Where' только для объектов коллекции. – mason
Ваши политики var являются экземпляром ViewModel «PoliciesImageModel» .. поэтому вы не можете выполнить запрос linq. Не выглядит правильно? – Wheels73