Изображение ошибки сохранить из базы данных для просмотра (ASP.NET MVC)

#asp.net #sql-server

Вопрос:

Я пытаюсь отобразить изображения, которые были загружены и сохранены в базе данных, и я не знаю, что делать. Я видел учебники, и похоже, что мой код нормальный, но у меня нет разрешения передать код модели для визуализации? Уже пытались выполнить ручную регистрацию, не проходя через базу данных, и это сработало, но когда база данных визуализации драйверов отсутствует, она не работает, следуйте коду:

Остальные коды находятся в представлении «Индекс» в распечатанном виде.

введите описание изображения здесь

Контроллер

   public class ProdutosController : Controller
    {
        private readonly ApplicationDbContext _context;
        private readonly IWebHostEnvironment _hostingEnvironment;

        public ProdutosController(ApplicationDbContext context, IWebHostEnvironment hostingEnvironment)
        {
            _context = context;
            _hostingEnvironment = hostingEnvironment;
        }

     
        public async Task<IActionResult> Index()
        {
           
            return View(await _context.Produtos.ToListAsync());

        }
      
                // GET: Produtos/Details/5
                public async Task<IActionResult> Details(int? id)
                {
                    if (id == null)
                    {
                        return NotFound();
                    }

                    var produto = await _context.Produtos
                        .FirstOrDefaultAsync(m => m.Id == id);
                    if (produto == null)
                    {
                        return NotFound();
                    }

                    return View(produto);
                }

   
                public IActionResult Create()
                {
            ProImagens vm = new ProImagens();
            ViewBag.images = new SelectList(_context.Produtos.ToList(), "Id", "ImageName");
            return View(vm);
        }


                [HttpPost]
           
        public IActionResult Create(ProImagens vm)
        {
            foreach (var item in vm.Images)
            {
                string stringFileName = UploadFile(item);
                var produtoImage = new ProdutoImage
                {
                    ImageURL = stringFileName,
                    Produto = vm.Produto
                };
                _context.ProdutoImages.Add(produtoImage);
            }
            _context.SaveChanges();
            return RedirectToAction("Index");
        }

        private string UploadFile(IFormFile file)
        {
            string fileName = null;
            if (file != null)
            {
                string uploadDir = Path.Combine(_hostingEnvironment.WebRootPath, "uploads");
                fileName = Guid.NewGuid().ToString()   "-"   file.FileName;
                string filePath = Path.Combine(uploadDir, fileName);
                using (var fileStream = new FileStream(filePath, FileMode.Create))
                {
                    file.CopyTo(fileStream);
                }
            }
            return fileName;
        }
 

Модель

 public class Produto
   {
       public int Id { get; set; }
       public string Nome { get; set; }
       public float Valor { get; set; }
       public string Memoria { get; set; }
       public string Cor { get; set; }
       public string ImageName { get; set; }

       public ICollection<ProdutoImage> ProdutoImages { get; set; }

   }

       public int Id { get; set; }
       public string ImageURL { get; set; }
       public Produto Produto { get; set; }

   }

 

Модель представления

  public class ProImagens
   {
       public List<IFormFile> Images { get; set; }
       public Produto Produto { get; set; }
      
   }
 

View

 @model IEnumerable< Projeto1___Ecomerce.Models.Produto>

@{ ViewData["Title"] = "Index"; }

Index
Create New

@foreach (var p in Model) {

       <img class="card-img" src="~/uploads/@p.ImageName" />
       <div class="card-body">
           <p><b>@p.Nome</b> <b>@p.Memoria</b> <b>@p.Cor</b> </p>
           <p><b>R$ @p.Valor</b></p>
       </div>
   </div>
}